table A table B
---------- ---------
id name a_id
1 Chris 1
2 Steve
3 Allen
选择A中所有行的正确sql查询是什么?表B中没有出现id。
Returns: 2 Steve, 3 Allen
答案 0 :(得分:1)
有正确的方法,有易于理解的方式。任何中途不错的sql引擎都会将它们变成后端的同一个东西,所以我总是以简单的方式写这个:
select * from A where id not in (select a_id from B)
答案 1 :(得分:1)
select
A.id,
A.Name
from A
left join B on A.id = B.A_id
where
B.A_id is null
答案 2 :(得分:1)
SELECT *
FROM TableA
WHERE id IN (
SELECT id
FROM TableA
EXCEPT
SELECT a_id
FROM TableB
)
答案 3 :(得分:0)
试试这个:
SELECT A.*
FROM A
LEFT JOIN B ON B.A_id = A.id
WHERE B.a_id IS NULL
答案 4 :(得分:0)
由于有很多方法可以导致罗马或StackOverflow,这里有另一种选择:
SELECT * FROM [A] AS [tblA]
WHERE NOT EXISTS (SELECT * FROM [B] AS [tblB] WHERE [tblB].[A_id] = [tblA].[id])