首页 > 解决方案 > 如何从表中获取其他两个表中不存在的*记录

问题描述

我想获取一个表的所有列的所有记录,这些记录不在其他 2 个表中。请帮忙。

我已经尝试过以下查询,它可以很好地比较一列。但我想比较 5 列。

select * from A 
WHERE NOT EXISTS 
(select * from B b where b.id=a.id) AND
NOT EXISTS
(select * from C c where c.id=a.id)

标签: sqlsql-server

解决方案


一般解决方案可能如下所示:

SELECT t1.*
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2 WHERE t2.id = t1.t2_id) AND
      NOT EXISTS (SELECT 1 FROM table3 t3 WHERE t3.id = t1.t3_id);

这假设您要定位记录,确保在和table1中找不到匹配项。table2table3


推荐阅读