sql—如果只需要表2中不在表1中的值,应该使用哪个join命令

kx1ctssn  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(370)

这个问题在这里已经有答案了

从一个表中查找另一个表中不存在的记录(9个答案)
11个月前关门了。
到目前为止我所拥有的

SELECT  *
FROM    
    #Table1 aa
RIGHT OUTER JOIN
    #Table2 bb
ON  a.FieldA = b.FieldB
v64noz0r

v64noz0r1#

我建议 not exists :

select t2.*
from #table2 t2
where not exists (select 1 from #table1 t1 where t1.fieldA = t2.fieldB)

这似乎是表达所需内容的最直接的方法,并且应该具有良好的性能,前提是您在上有索引 #table2(fieldB) 以及 #table1(fieldA) .
如果你真的想用 join ,则可以使用- left join, 像这样:

select t2.*
from #table2 t2
left join #table1 t1 on t1.fieldA = t2.fieldB
and t1.fieldA is null

逻辑是尝试连接两个表,并从中提取记录 #table2 加入失败。

相关问题