-1
我对相关子查询执行的怀疑当有不止一个子查询。相关子查询执行时,它具有多个子查询
我了解相关子查询执行时,只有一个子查询。但是,如果有一个以上我无法理解。
我都提到了许多书籍和网站,但我无法找到合适的答案。
下面是两个查询。我知道query1如何执行,但query2如何?
查询1:
select e.ename, e.city
from emp1 e
where exists (select f.ename
from emp2 f
where f.ename = ’ajay’
and e.city = f.city
)
QUERY2:
select e.ename
from employee e
where exists (select ‘x’
from emp_company c
where e.ename = c.ename
and exists (select ‘x’
from company m
where c.cname = m.cname
and m.city = ’bombay’
)
)
- 在所考虑QUERY1雇员表中的第一行
ename
,city
的执行的第一步骤。 - 在QUERY1的执行的第二步骤中,从主查询所考虑的城市用的
emp2
每一行比较。 - 的,同时也可与EMP2的每一行的主要查询与城市;如果任何行满足条件,那么行的名字被添加到列表中。
- 所形成的列表返回到主查询。
- 如果返回的列表不为空,然后
exists
计算为真。然后emp1
表的ename
,city
添加输出。 ename
,city
从emp1
选自第二行emp1
表。
能否请你解释QUERY2的执行为我解释QUERY1?
正如你解释query1?哪里?我看不到任何解释!在你解释事情时,请解释你为什么不使用连接。 –
我已经完全重新编写了您的问题,使其可读性和希望有意义。如果您不同意任何事情,请随时重新编辑。 – Ben
不要以有序的步骤思考。只要最终结果与您的六步法产生的结果相符,DBMS就可以自由制定任何计划。这甚至可能是笛卡儿的产品+修剪任何不满足存在和存在条款的东西。 – wildplasser