oracle中的exists 用法以及效…
2017-04-11 12:16
441 查看
Ta,Tb两张数据库表关联列为 Ta.aid = Tb.bid,现在要取 Ta
中的数据,其中Ta.aid的值在b中也存在:
SQLl实现如下:
select * from Ta where exists(select 1 from
Tb where Ta.aid = Tb.bid)
福利一枚:
现在要取 Ta
中的数据,其中Ta.aid在Tb中不存在:
select * from Ta where
not exists(select 1 from Tb where Ta.aid = Tb.bid)
有两个简单例子,以说明
“exists”和“in”的效率问题
1) select * from Ta
where exists(select 1 from Tb where Ta.aid = Tb.bid) ;
Ta数据量小而Tb数据量非常大时,Ta<<Tb 时,1) 的查询效率高。
2) select * from Ta
where Ta.aid in (select Tb.bid from Tb) ;
Ta数据量非常大而Tb数据量小时,Ta>>Tb 时,2) 的查询效率高。
中的数据,其中Ta.aid的值在b中也存在:
SQLl实现如下:
select * from Ta where exists(select 1 from
Tb where Ta.aid = Tb.bid)
福利一枚:
现在要取 Ta
中的数据,其中Ta.aid在Tb中不存在:
select * from Ta where
not exists(select 1 from Tb where Ta.aid = Tb.bid)
有两个简单例子,以说明
“exists”和“in”的效率问题
1) select * from Ta
where exists(select 1 from Tb where Ta.aid = Tb.bid) ;
Ta数据量小而Tb数据量非常大时,Ta<<Tb 时,1) 的查询效率高。
2) select * from Ta
where Ta.aid in (select Tb.bid from Tb) ;
Ta数据量非常大而Tb数据量小时,Ta>>Tb 时,2) 的查询效率高。
相关文章推荐
- (转)ORACLE WITH AS 用法
- Oracle DBLINK 抽数以及…
- oracle中的exists 和not exists 用…
- 常见Oracle HINT的用法
- oracle 中exists,not exists的用法以及和exists和in的区别
- oracle exists&not exists用法及与in&not in比较(10g)-开发系列(四)
- ORACLE&nbsp;ORDER&nbsp;BY用法总结
- oracle中的exists&nbsp;和not&amp;nbsp…
- Oracle&nbsp;中union的用法
- Oracle&nbsp;CASE&nbsp;WHEN&nbsp;用法介绍
- Oracle&nbsp;函数&nbsp;Translate&nbsp;的用法
- Oracle&nbsp;REGEXP_INSTR&nbsp;用法
- Oracle笔记之any,some,all以及exists与in的用法
- oracle&nbsp;锁表查询以及解锁和ki…
- set&nbsp;unused的用法(ORACLE删…
- 常见Oracle HINT的用法
- Oracle wmsys.wm_concat的几个用法
- 常见Oracle HINT的用法
- oracle中的exists 和not exi…
- ORACLE&nbsp;绑定变量用法总结