首页 > 解决方案 > 子查询中不存在

问题描述

我有一个包含 individual_ref 列表的临时表,我还有另一个名为“Email”的表,其中包含 Individual_ref 和 email 列。我想找出临时表中的那些 Individual_ref 不存在于电子邮件表中。

下面是我的查询,它没有产生我正在寻找的结果。

select t.ind_ref from #temp_email t
where t.ind_ref  not in (SELECT EM.INDIVIDUAL_REF FROM EMAIL EM )

标签: sqlsql-servertsql

解决方案


它似乎INDIVIDUAL_REF有空值,所以在这种情况下NOT EXISTS可以做到这一点:

select t.ind_ref
from #temp_email t
where not exists (select 1 from email e where e.INDIVIDUAL_REF = t.ind_ref);

NOT INnull如果子查询返回值将失败。因此,您将有两种方法,一种是过滤子查询IS NOT NULLNOT EXISTS直接使用。


推荐阅读