如何从First表中检索第二个表中没有引用的记录?

时间:2011-04-22 22:57:35

标签: mysql

我有一个包含两个表的数据库,其中这些表有它们之间的关系,我想从第一个表中检索它们在第二个表中没有引用的记录(第一个出现的id)只有.. ..

执行该操作的sql命令是什么?

4 个答案:

答案 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