您的位置:首页 > 数据库

SQL:查找一个表中存在而另一个表中不存在的记录

2017-09-07 17:26 337 查看
方法1:
 select * from (select distinct  aid from a ) as c

    where (select count(1) as num from b where b.bid = c.aid) = 0

方法2:
select c.aid from (select distinct aid from a) as c left join b on c.aid = b.bid where b.bid is null
等同于
select a.aid from a left join b on a.aid = b.bid where b.bid is null
但是第一种检测了aid的唯一性,更保险
 
另一例子:
select depName,pcName,empName,iState from T_SC_UserManager as NO_FILTRATE left join T_SC_UserManager_SEQ B on NO_FILTRATE.empName = B.ItemName where (B.ItemType = 1 or B.ItemType is null) and
B.ItemName is null

方法3:
select distinct a.aid from a where a.aid not in (select b.bid from b)
 
效率高低: 1 > 2 > 3

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐