这个问题在这里已经有答案了:
从一个表中查找另一个表中不存在的记录(9个答案)11个月前关门了。到目前为止我所拥有的
SELECT * FROM #Table1 aa RIGHT OUTER JOIN #Table2 bb ON a.FieldA = b.FieldB
v64noz0r1#
我建议 not exists :
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, 像这样:
#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 加入失败。
#table2
1条答案
按热度按时间v64noz0r1#
我建议
not exists
:这似乎是表达所需内容的最直接的方法,并且应该具有良好的性能,前提是您在上有索引
#table2(fieldB)
以及#table1(fieldA)
.如果你真的想用
join
,则可以使用-left join,
像这样:逻辑是尝试连接两个表,并从中提取记录
#table2
加入失败。