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
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语句技巧:查询存在一个表而不在另一个表中的数据记录
- [SQL] 如何在SQL Server2005数据库中检查一个表是否存在,如存在就删除表记录,如不存在就建表.
- 找在一个表中存在而另一个表中不存在的记录
- 给定一个经过一次旋转的有序数组,从中查找一个值,若存在返回它的索引,不存在返回-1
- Mysql 插入记录时检查记录是否已经存在,存在则更新,不存在则插入记录SQL
- SQL查询~ 存在一个表而不在另一个表中的数据
- 给定一个经过一次旋转的有序数组,从中查找一个值,若存在返回它的索引,不存在返回-1,假定数组存在重复元素
- [Scripts]一个表中存在但另外一个表中不存在的SQL
- SQL存在一个表而不在另一个表中的数据
- [Scripts]一个表中存在但另外一个表中不存在的SQL
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
- mysql 存在该记录则更新,不存在则插入的sql
- Mysql 插入记录时检查记录是否已经存在,存在则更新,不存在则插入记录SQL
- Sql : 如何判断一个表中,是否存在一个ID,如果存在不处理,如果不存在
- mysql 存在该记录则更新,不存在则插入记录的sql
- oracle sql 记录存在则更新,不存在则插入
- mysql 存在该记录则更新,不存在则插入记录的sql