表2中未包含JOIN和SELECT值

时间:2016-09-29 06:31:18

标签: sql

我很欣赏这对你们来说可能非常简单,但有时候JOIN背后的逻辑对初学者来说可能很难。我想选择" ID"来自table1,但只有那些没有出现在table2中的ID" ID"。我测试了LEFT和RIGHT,但无法让它以我需要的方式工作。我正在使用dashDB。

4 个答案:

答案 0 :(得分:2)

试试这个......

SELECT *
FROM table1
LEFT JOIN table2 ON table1.ID = table2.ID
WHERE table2.ID IS NULL

答案 1 :(得分:2)

我总是更喜欢NOT EXISTS来执行此操作

Select * from table1 a  
where NOT EXISTS (select 1 from table2 b where a.id = b.id);

这是 Aaron Bertrand 的一篇优秀文章,它比较了所有方法的表现

Should I use NOT IN, OUTER APPLY, LEFT OUTER JOIN, EXCEPT, or NOT EXISTS?

答案 2 :(得分:1)

您可以使用NOT IN和子查询

Select * from table1 where id NOT IN (select id from table2);

答案 3 :(得分:1)

使用以下脚本。

SELECT t1.ID
FROM table1 t1
LEFT JOIN table2 t2 ON t1.ID = t2.ID
WHERE t2.ID IS NULL