表A
B列:AA,BB,CC,DD,EE,FF
表C
D列:AA,BB,CC,GG,KK,MM
我需要表A中的数据,而表C中没有这些数据
输出应为:DD,EE,FF
尝试以下内容:
Select A.B from A
Left Join C on A.B = C.D
where A.B not in(Select C from D)
答案 0 :(得分:2)
只是不加入联接
select B
from A
where B not in(Select C from D)
您正试图使其复杂化
答案 1 :(得分:1)
not exists
浮现在脑海:它可能比not in
更有效,并且null
是安全的,而not in
不是(如果not in
子查询返回的任何值为null
,则将返回外部查询中的所有行,这大概不是您想要的):
select a.*
from a
where not exists (select 1 from c where a.b = c.d)
或者,按照您原始查询的精神,您可以使用反left join
:
select a.*
from a
left join c on a.b = c.d
where c.d is null
答案 2 :(得分:0)
这是反联接的定义:
display: 'flex'