我有一个表(TableA),其中主键作为另一个表(TableB)上的外键存在。我正在尝试编写一个SQL查询(我正在使用SQL Server 2005),它将找到TableA中的所有记录,其中主键在TableB中不存在作为外键(我们将说明加入TableAID)。我怀疑它会使用外连接,但我一直在努力。任何人都可以帮助SQL newb吗?
答案 0 :(得分:4)
SELECT A.*
FROM TableA AS A
LEFT JOIN TableB AS B ON (A.ID = B.TableAID)
WHERE B.TableAID IS NULL
答案 1 :(得分:4)
您可以使用NOT EXISTS
SELECT columnlist
FROM TableA
WHERE NOT EXISTS(
SELECT * FROM TableB
WHERE TableB.column = TableA.column)
答案 2 :(得分:2)
这几乎是SQL中的自然语言(“WHERE NOT EXISTS”):
SELECT A.*
FROM TableA AS A
WHERE NOT EXISTS ( SELECT 1
FROM TableB
WHERE TableA.ID = B.TableAID
)
答案 3 :(得分:0)
Select * from TableA
where
TableA.TableAID not in (select TableB.TableAID from TableB)