您的位置:首页 > 其它

存在于一个表而不存在于另一个表中的数据

2011-06-20 12:01 197 查看
方法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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: