以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] sql语名查询救助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114281) |
-- 作者:lmlptj -- 发布时间:2018/2/2 11:43:00 -- [求助] sql语名查询救助 有两个表:表A,字典表。两表中同有一个“机构编号”字段,字典表中有万个不同的机构编号(不重复值),而且是确定的。表A为人员库,也有机构编号,可重复,近万条数据。想用sqL语名查询表A中的人员有哪些”机构编号“是错误的,即不在 字典表 中机构编号的范围:以下sql语句生成的查询表查找不出来!请老师指点: Sel ect 姓名,身份证号,机构编号 From {表A} Where 机构编号 not in (sel ect 机构编号 from{字典表}) 将上述语句的”not" 去除后可查询结果出来,而且我将表A中的人员表故意放了几个不在字典表范围内的机构编号,但就是查不出来。
|
-- 作者:有点甜 -- 发布时间:2018/2/2 11:53:00 -- 试试这样
Select * From {表A} a left join {字典表} b on a.机构编号=b.机构编号 where b.机构编号 is null
试试改成
Select 姓名,身份证号,机构编号 From {表A} Where 机构编号 not in (select 机构编号 from{字典表} where 机构编号 is not null) |
-- 作者:有点甜 -- 发布时间:2018/2/2 11:54:00 -- 或者
Select 姓名,身份证号,机构编号 From {表A} Where 机构编号 not Exists (select 机构编号 from{字典表}) |
-- 作者:lmlptj -- 发布时间:2018/2/2 11:57:00 -- 真的可以了呀!谢谢!为嘛要加个非空的过滤条件呢?谢谢! |
-- 作者:有点甜 -- 发布时间:2018/2/2 12:05:00 -- 以下是引用lmlptj在2018/2/2 11:57:00的发言:
真的可以了呀!谢谢!为嘛要加个非空的过滤条件呢?谢谢!
not in 改成 not Exists 就不需要加条件。
原因参考 https://www.cnblogs.com/snn0605/p/5901634.html
|