标题:SQL如何筛选出不符合条件的记录?
只看楼主
dragonman19
Rank: 1
等 级:新手上路
帖 子:68
专家分:5
注 册:2014-2-20
结帖率:42.11%
已结贴  问题点数:18 回复次数:5 
SQL如何筛选出不符合条件的记录?
有A表和B 表
用A表中的身份证、姓名、部门等字段匹配B表

这很容易
但是如果找出A表中的身份证、姓名和部门等字段在B表中没有的记录
用SQL应该如何写呢?
搜索更多相关主题的帖子: SQL 筛选 条件 记录 表中 
2017-09-14 10:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:18 
身份证、姓名、部门 三个字段值都同时不存在的记录吧

坚守VFP最后的阵地
2017-09-14 10:56
dragonman19
Rank: 1
等 级:新手上路
帖 子:68
专家分:5
注 册:2014-2-20
得分:0 
是啊
2017-09-14 11:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
身份证号码是唯一识别码
程序代码:
create cursor t0 (部门 c(10),姓名 c(10),身份证 c(18))
create cursor t1 (部门 c(10),姓名 c(10),身份证 c(18))
insert into t1 values ("a","张三","123456")
insert into t1 values ("b","李四","234567")
insert into t1 values ("a","张二","345678")
insert into t1 values ("c","刘三","456789")
index on 身份证 tag sy
create cursor t2 (部门 c(10),姓名 c(10),身份证 c(18))
insert into t2 values ("a","张二","345678")
insert into t2 values ("a","赵一","012345")
insert into t2 values ("b","李四","234567")
insert into t2 values ("c","刘二","567890")
* VFP 方法
set relation to 身份证 into t1
scan
    if not found("t1")
        insert into t0 values (t2.部门,t2.姓名,t2.身份证)
    endif 
endscan
set relation to
select t0
browse
* SQL 方法
select 部门,姓名,身份证 from t2 where 身份证 not in (select 身份证 from t1)

坚守VFP最后的阵地
2017-09-14 11:18
dragonman19
Rank: 1
等 级:新手上路
帖 子:68
专家分:5
注 册:2014-2-20
得分:0 
谢谢斑竹,not in 的方法受教了
2017-09-14 13:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
或者
select 部门,姓名,身份证 from t2 where 部门+姓名+身份证 not in (select 部门+姓名+身份证 from t1)

坚守VFP最后的阵地
2017-09-14 13:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480680-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134394 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved