2
select ename,deptno
from emp1
where exists
(select deptno from dpt where dpt.deptno=emp1.deptno AND deptno>20);
返回ENAME對應於在子查詢
查詢2
select ename,deptno
from emp1
where exists
(select deptno from dpt where deptno>20);
施加在DEPTNO字段的條件,但在查詢2中的結果包含字段ename和deptno的所有值
什麼更改了這兩個查詢中的結果集?是因爲加入嗎?實際上,聯接如何在查詢1中引入不同的結果集?爲什麼查詢1中不考慮where條件,而不是查詢2?
legends:
empname is employee name in the table emp,
deptno is department no. which is the common field in emp and dept tables.
我真的很感謝你解釋事情的方法。所以基本上相關的子查詢是當外部查詢中的表與子查詢中的表之間存在關係(聯合)時?非常感謝你的迴應。 –
@ManushreeMishra相關子查詢是當您從子查詢引用到外部查詢時。在你的示例'where dpt.deptno = emp1.deptno'中。線索是相關的子查詢是從外部查詢執行的每一行和不相關的執行一次 – lad2025
所以引用基本上是由內部連接完成,或者也可以這樣做:emp.deptno在子查詢中? –