“Exists 的执行逻辑解释”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“1”的新页面)
 
 
第1行: 第1行:
1
+
<syntaxhighlight lang="sql">
 +
select a.*
 +
from dual a
 +
where exists (select * from dual b where a.dummy = b.dummy);
 +
</syntaxhighlight>
 +
 
 +
=== 首先 ===
 +
先查询的并不是括号中子查询的内容
 +
 
 +
=== 而是 ===
 +
主查询的表 <code>select a.* from dual</code>
 +
 
 +
=== 然后 ===
 +
根据表的每一条记录,执行语句 <code>exists (select * from dual b where a.dummy=b.dummy)</code>,依次去判断 where 后面的条件是否成立,如果成立则返回 true;不成立则返回 false。如果返回的是 true,则该行结果保留,如果返回的是 false,则删除该行
 +
 
 +
=== 最后 ===
 +
将得到的结果返回

2023年8月15日 (二) 02:23的最新版本

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

最后

将得到的结果返回