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,则删除该行

最后

将得到的结果返回