sql - 子查询中不存在
问题描述
我有一个包含 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 )
解决方案
它似乎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 IN
null
如果子查询返回值将失败。因此,您将有两种方法,一种是过滤子查询IS NOT NULL
或NOT EXISTS
直接使用。
推荐阅读
- php - 如何在 SQL 查询中使用 PHP 变量
- typescript - 如何将类型联合转换为打字稿中的类型数组?
- c# - 使用 Azure 队列时 Web API 不启动
- html - Html Parser 边距为负
- android - 我正在创建 android 快捷方式,我希望默认打开一个启动活动
- java - 为什么即使在设置 JPanel 的大小后我的框布局也会改变大小
- unit-testing - 在 Java 中模拟 JNI 方法
- html - 这是虚拟文本,但我无法让每个评论 div 成行显示。其中有 3 个 'review1' 'review2' 'review3'
- c - 我做错了什么 ....?(计算每人的纸杯蛋糕数量)
- reactjs - 使用 React 在 ASP .NET Core 中分离前端和后端