Oracle-exists⽤法简单搞懂
Exists⽤法可能不太好理解,今天帮助⼤家简单搞懂
⽰范语句
使⽤exists:
select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
使⽤in
select * from T1 where T1.a in (select T2.a from T2) ;
exists ⽤法
使⽤exists写法时,其中 “select 1 from T2 where T1.a=T2.a” 相当于⼀个关联表查询,相当于“select 1 from T1,T2  where T1.a=T2.a”,
“select * from T1 where exists(xxx)” 中  “exists(xxx)” 的⽤处是进⾏true、false的判断,看xxx所代表的语句要查的记录是否存在,存在则取这条数据,不存在则不取。
也由于exists中xxx部分只作为判断使⽤,所以会写成select 1 ⽽不是 select * ,来提⾼效率。
exists的用法效率⽐较
T1数据量⼩,⽽T2数据量⾮常⼤时,使⽤exists 的查询效率⾼。
T1数据量⾮常⼤,⽽T2数据量⼩时,使⽤in 的查询效率⾼。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。