【发布时间】:2016-06-27 16:43:47
【问题描述】:
如果两张表被releted,一张表可能有缺失的行,如何找到这些记录?
例如我有两个表:table1(主键为“id”,table2(外键为“id”) 我想要实现的是获取所有记录,其中 table1 记录在 table2 中没有对应项(缺少行)。
【问题讨论】:
-
进行左连接并检查table2的对应部分是否为空
标签: sql
如果两张表被releted,一张表可能有缺失的行,如何找到这些记录?
例如我有两个表:table1(主键为“id”,table2(外键为“id”) 我想要实现的是获取所有记录,其中 table1 记录在 table2 中没有对应项(缺少行)。
【问题讨论】:
标签: sql
您可以为此使用NOT EXISTS:
SELECT *
FROM table1 AS t1
WHERE NOT EXISTS (SELECT 1
FROM table2 AS t2
WHERE t2.id = t1.id)
【讨论】:
EXCEPT/EXCEPT ALL可以用:
select id from table1
except all
select id from table2
【讨论】: