存在于一个表而不存在于另一个表中的数据
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
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
相关文章推荐
- 查询存在于一个表而不存在于另一个表中的数据
- 存在一个表而不在另一个表的数据
- SQL查询存在一个表而不在另一个表中的数据
- (数据库篇) SQL查询~ 存在一个表而不在另一个表中的数据
- mysql用存储过程写入 一个表A中没有存在在另一个表B的数据
- 查询一个表的数据是否在另一个表内也存在
- excel中判断一个表中的某一列的数据在另一个表中的某一列中是否存在
- mysql 查询一个表中没有存在在另一个表的数据
- SQL语句技巧:查询存在一个表而不在另一个表中的数据记录
- oracle数据库中查询一个表中的字段是否存在于另一个表中字段数据
- 查找一个表中存在而另一个表中不存在的记录
- SQL查询~ 存在一个表而不在另一个表中的数据
- SQL查询~ 存在一个表而不在另一个表中的数据
- SQL语句技巧:查询存在一个表而不在另一个表中的数据记录
- SQL查询 存在一个表而不在另一个表中的数据
- 查找一个表中存在而另一个表中不存在的记录
- SQL查询~ 存在一个表而不在另一个表中的数据
- SQL存在一个表而不在另一个表中的数据, 更新字段为随机时间
- 查存在一个表而不在另一个表中的数据
- SQL:查找一个表中存在而另一个表中不存在的记录