相關子查詢和非相關子查詢


1.相關子查詢

先執行主查詢,再針對主查詢返回的每一行數據執行子查詢,如果子查詢能夠返回行,則這條記錄就保留,否則就不保留.

舉例:查詢所有是領導的員工的信息

--相關子查詢查詢所有是領導的員工信息
select * from emp e1 where exists (select * from emp e2 where e1.empno=e2.mgr);

舉例:查詢有員工的部門的信息

--使用相關子查詢查詢有員工的部門的信息
select * from dept d1 where exists(select * from emp e1 where e1.deptno=d1.deptno);

2.非相關子查詢

非相關子查詢執行順序是先執行子查詢,再執行主查詢。

舉例:查詢所有是領導的員工信息

--非相關子查詢查詢所有是領導的員工信息
select * from emp where EMPNO in (select mgr from emp);

★但是,如果子查詢數據量比較大,一般不建議使用in,因為in的效率比較低,我們可以使用相關子查詢:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM