我想在两个表上实现反连接,但使用两个键,以便结果是表 A 中不包含表 B 中的 [key_1, key_2] 组合的所有行。如何在 SQL 中编写此查询?
问问题
87 次
1 回答
0
如果你想要一个反left join
,逻辑是:
select a.*
from tablea a
left join tableb b on b.key_1 = a.key_1 and b.key_2 = a.key_2
where b.key_1 is null
至于我,我喜欢用 来实现这样的逻辑not exists
,因为我发现它更能表达意图:
select a.*
from tablea a
where not exists (
select 1 from tableb b where b.key_1 = a.key_1 and b.key_2 = a.key_2
)
该not exists
查询将利用tableb(key_1, key_2)
.
于 2020-10-18T20:13:25.623 回答