方法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