sql语句not in判断条件注意事项
问题描述:mysql数据库,存在两个表org表和kdorg表,用于存储组织信息。现在我需要从org表找出组织,条件为该组织不在kdorg表里。
sql语句:select o.orgno o.orgname from org o where orgno not in(select kd.orgno from kdorg kd);
明明org表里存在一些组织,该组织的组织编号不存在于kdorg表,但查询结果就是0条记录。搞了一天,也没搞出问题在哪,头都大了,就是一条简单的sql语句,条件满足,为何就是不对呢?
原因分析:是因为kdorg表存在一条记录,该记录的orgno为null,导致查询结果为空。把orgno为null的记录从kdorg表删除,该sql语句就能成功查询出所需信息。
总结: not in /in(不能存在null的字段,否则会导致条件失效,sql语句查不出所需数据)
改进:(1)select o.orgno o.orgname from org o where orgno not in(select kd.orgno from kdorg kd where kd.orgno is not null);
(2)保证子查询结果中不存在null。
sql语句not in判断条件注意事项
问题描述:mysql数据库,存在两个表org表和kdorg表,用于存储组织信息。现在我需要从org表找出组织,条件为该组织不在kdorg表里。
sql语句:select o.orgno o.orgname from org o where orgno not in(select kd.orgno from kdorg kd);
明明org表里存在一些组织,该组织的组织编号不存在于kdorg表,但查询结果就是0条记录。搞了一天,也没搞出问题在哪,头都大了,就是一条简单的sql语句,条件满足,为何就是不对呢?
原因分析:是因为kdorg表存在一条记录,该记录的orgno为null,导致查询结果为空。把orgno为null的记录从kdorg表删除,该sql语句就能成功查询出所需信息。
总结: not in /in(不能存在null的字段,否则会导致条件失效,sql语句查不出所需数据)
改进:(1)select o.orgno o.orgname from org o where orgno not in(select kd.orgno from kdorg kd where kd.orgno is not null);
(2)保证子查询结果中不存在null。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql -sql语句not in判断条件注意事项 - Python技术站