我有一个包含两个表的数据库,其中这些表有它们之间的关系,我想从第一个表中检索它们在第二个表中没有引用的记录(第一个出现的id)只有.. ..
执行该操作的sql命令是什么?
答案 0 :(得分:2)
Select * From Table1
Where Table1.ReferenceID NOT IN (SELECT id From Table2)
答案 1 :(得分:1)
使用NOT IN指定您只对其id未从其他表引用的行感兴趣
select * from table1 where table1.id NOT IN (select distinct referenced_id from table2)
答案 2 :(得分:0)
使用JOIN
:
SELECT * FROM
table_a
LEFT JOIN table_b ON table_a.id = table_b.a_id
HAVING table_b.some_column = NULL;
使用NOT IN
:
SELECT * FROM
table_a
WHERE table_a.id NOT IN (SELECT table_b.a_id from table_b);
如果您正在处理大表,左连接可能会更快。
答案 3 :(得分:0)
SELECT FirstTable.*
FROM FirstTable
LEFT JOIN SecondTable
ON FirstTable.FirstTableId = SecondTable.FirstTableId
WHERE 1=1
AND SecondTable.SecondTableId IS NULL