| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 134 人关注过本帖
标题:SQL如何筛选出不符合条件的记录?
只看楼主 收藏
dragonman19
Rank: 1
等 级:新手上路
帖 子:39
专家分:5
注 册:2014-2-20
结帖率:18.18%
  已结贴   问题点数:18  回复次数:5   
SQL如何筛选出不符合条件的记录?
有A表和B 表
用A表中的身份证、姓名、部门等字段匹配B表

这很容易
但是如果找出A表中的身份证、姓名和部门等字段在B表中没有的记录
用SQL应该如何写呢?
2017-09-14 10:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:143
帖 子:6630
专家分:15025
注 册:2012-2-5
  得分:18 
身份证、姓名、部门 三个字段值都同时不存在的记录吧

QQ:243688667
2017-09-14 10:56
dragonman19
Rank: 1
等 级:新手上路
帖 子:39
专家分:5
注 册:2014-2-20
  得分:0 
是啊
2017-09-14 11:12
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:143
帖 子:6630
专家分:15025
注 册: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)

QQ:243688667
2017-09-14 11:18
dragonman19
Rank: 1
等 级:新手上路
帖 子:39
专家分:5
注 册:2014-2-20
  得分:0 
谢谢斑竹,not in 的方法受教了
2017-09-14 13:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:143
帖 子:6630
专家分:15025
注 册:2012-2-5
  得分:0 
或者
select 部门,姓名,身份证 from t2 where 部门+姓名+身份证 not in (select 部门+姓名+身份证 from t1)

QQ:243688667
2017-09-14 13:14









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

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