-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