我想查找一个表中但不存在于另一个表中的记录。除了记录没有形成相同。所以我想确定我想用来比较的列。我以为我用以下代码解决了它,但它似乎没有工作(返回零记录)......
SELECT A.Name, A.Position, A.[Year]
FROM TABLE A
WHERE NOT EXISTS (
SELECT B.Name, B.Position, B.[Year]
FROM TABLE B
)
或者我应该通过某种加入来做这件事?感谢...
答案 0 :(得分:5)
你错过了WHERE
子句来比较两个表:
SELECT A.Name, A.Position, A.[Year]
FROM TABLE A
WHERE NOT EXISTS (
SELECT B.Name, B.Position, B.[Year]
FROM TABLE B
WHERE B.Name = A.Name AND B.Position = A.Position AND B.[Year] = A.[Year]
)
答案 1 :(得分:3)
假设您想要使用所有三列进行比较,您可以使用反连接。
SELECT A.Name, A.Position, A.[Year]
FROM TABLE_A A
LEFT JOIN TABLE_B B
ON a.name = b.name
and a.position = b.position
and a.[Year] = b.[Year]
WHERE
b.name is null
答案 2 :(得分:1)
您可以在表b上使用左外连接,并使用where子句查找空值。
我假设第一个查询中的所有内容都来自表A,而第二个查询中的所有内容都来自表B
Select A.Name, A.Position, A.[Year]
from A
Left Join B on A.Name = B.Name and A.Position = B.Position and A.[Year] = B.[Year]
where B.Name is Null