标题: not in子查询中不能包含空值 [打印本页] 作者: 张兴康 时间: 2020-6-6 14:30 标题: not in子查询中不能包含空值 今天客户发过来一个问题,在进行他表选择的时候,本来应该有的数据没有显示出来查看了他表选择的语句如下:
select * from 表名1 where ID not in (select 关联ID from 表名2)
从语法上看没有啥错误,但是为什么查询的结果集是空的,没有将原本应该有的数据显示出来呢?
经过排查发现:select 关联ID from 表名2 这条语句的结果集含有null值
造成原因:录入的数据来源不止是通过他表选择,还可以手动填写;手动填写时关联ID字段的值为空。
网上搜索的关于not in 为null的原因:
只要not in的子查询中包含有null值,那么最终的结果就为空。