比较两个表并筛选结果



我正在尝试在两个表之间进行比较,然后返回孤立记录。我的意思是将客户 A 与客户 B 进行比较,排除任何匹配项,并返回所有不匹配的记录。我有以下几点:

CustomerA | CustomerB

在客户 A 表中,我有以下列:

|Name        | PostCode     |

在客户 B 表中,我有以下列:

| PostCode     |

我正在尝试将客户 A 表邮政编码列与客户 B 表匹配,我已完成如下操作:

select postcode from TestDB.dbo.customerA
except
select postcode from TestDB.dbo.customerB

但是,我只在上述查询后将邮政编码作为返回的结果,而没有名称:

| PostCode     | 
| A32 245      | 
| B44 345      | 
| C54 342      |

我也需要那里的名字。例如:

|Name       | PostCode     | 
|James      | A32 245      | 
|Roger      | B44 345      | 
|Smith      | C54 342      |

同时,是否可以按名称过滤返回的结果?例如,在比较之后,我是否可以进一步向下钻取并获取名称为"James"的所有孤立记录?

刚开始SQL查询,所以将不胜感激任何方向。

我认为您想要来自客户 A 的所有记录,其中邮政编码在客户 B 中不匹配。这可以像这样完成:

SELECT *
FROM CustomerA
WHERE PostCode NOT IN
  (SELECT PostCode FROM CustomerB);

要仅获取特定客户,请执行以下操作:

SELECT *
FROM CustomerA
WHERE PostCode NOT IN
  (SELECT PostCode FROM CustomerB)
AND Name = 'James';

您应该只比较所谓的主键,主键是标识每个人并且始终唯一的属性。例如,它可以是 DNI。是的,您可以使用 SELECT 查询筛选结果

Select * from table where user = 'name';

相关内容

  • 没有找到相关文章

最新更新