區分關聯子查詢和非關聯子查詢
子查詢可區分為關聯子查詢和非關聯子查詢,他們和外層查詢之間的執行順序和關係是不同的。
關聯子查詢:
在關聯子查詢中,對於外部查詢返回的每一行資料,內部查詢都要執行一次。另外,關聯子查詢的資訊流是雙向的,外部查詢的每行資料傳遞一個值給子查詢,然後子查詢為每一行資料執行一次並返回它的記錄,之後外部查詢根據返回的記錄做出決策。
select * from dept d where exists(select * from emp e where e.deptno = d.deptno);
特點:
1、先執行外層查詢
2、再執行內層查詢
非關聯子查詢:
非相關子查詢是獨立於外部查詢的子查詢,子查詢執行完畢後將值傳遞給外部查詢。
select * from emp where sal = (select max(sal) from emp);
特點:
1、先執行內層查詢
2、再執行外層查詢
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28974745/viewspace-2645019/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是SQL 語句中相關子查詢與非相關子查詢SQL
- Laravel 通過子查詢建立動態關聯Laravel
- MySQL 相關子查詢MySql
- MySQL exists關聯子查詢SQL效能及其低下最佳化之等值子查詢轉換MySql
- MySQL 優化五(關聯查詢子查詢以及 in 的效率問題)(高階篇)MySql優化
- java 分庫關聯查詢工具類Java
- JPA多表關聯查詢
- Mongodb 關聯表查詢MongoDB
- SQL查詢的:子查詢和多表查詢SQL
- 20240719資料庫關聯查詢、條件查詢資料庫
- mysql三表關聯查詢MySql
- mysql 三表關聯查詢MySql
- sql-server不相關子查詢SQLServer
- sql-server相關子查詢SQLServer
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- Laravel 關聯查詢限制條數和分組查詢顯示為零的結果Laravel
- mysql三張表關聯查詢MySql
- 兩表關聯查詢:sql、mybatisSQLMyBatis
- MyBatisPlus怎麼多表關聯查詢?MyBatis
- mysql中的多表關聯查詢MySql
- 如何做多表關聯查詢
- hyperf關聯模型條件查詢模型
- laravel 模型關聯查詢的 belongsToManyLaravel模型
- MySQL之連線查詢和子查詢MySql
- 複雜查詢—子查詢
- Python—Django:關於在Django框架中對資料庫的查詢函式,查詢集和關聯查詢PythonDjango框架資料庫函式
- mysql三表關聯查詢練習MySql
- MYSQL A、B表陣列關聯查詢MySql陣列
- onethinkphp 如何做多表關聯查詢PHP
- hyperf關聯子表查詢主表資料
- 巢狀關聯會查詢兩次巢狀
- MYsql 子查詢MySql
- MySQL子查詢MySql
- 子串查詢
- MySQL全面瓦解11:子查詢和組合查詢MySql
- day95:flask:SQLAlchemy資料庫查詢進階&關聯查詢FlaskSQL資料庫
- Spring Data JPA 實現多表關聯查詢Spring
- 多表關聯查詢中,關聯欄位都應該建立索引嗎?索引