Exists 的执行逻辑解释
跳到导航
跳到搜索
select a.*
from dual a
where exists (select * from dual b where a.dummy = b.dummy);
首先
先查询的并不是括号中子查询的内容
而是
主查询的表 select a.* from dual
然后
根据表的每一条记录,执行语句 exists (select * from dual b where a.dummy=b.dummy)
,依次去判断 where 后面的条件是否成立,如果成立则返回 true;不成立则返回 false。如果返回的是 true,则该行结果保留,如果返回的是 false,则删除该行
最后
将得到的结果返回