子查詢是另一個(gè)更大查詢中的查詢。它們對(duì)于獲取稍后將在主查詢中使用的特定信息很有用。
類型
- 單行子查詢:
返回單個(gè)值。
- 多行子查詢
返回多行
- 相關(guān)子查詢
它取決于主查詢中的列,這意味著它對(duì)外部查詢中的每一行執(zhí)行一次。
- 嵌套子查詢
其中包含另一個(gè)子查詢的子查詢。
- 標(biāo)量子查詢
返回單個(gè)值(類似于單行子查詢),但可以用作 select 中的列。
子查詢可以出現(xiàn)在查詢的 3 個(gè)位置:
- 選擇
- 來自或內(nèi)部
- 哪里
每個(gè)部分都有一套規(guī)則。
例如:
- select 中的子查詢應(yīng)返回單個(gè)值,例如:
select nombre, (select max(salary) from employees) as max_salary from employees;
-
from or inner 中的子查詢應(yīng)返回一組行
-
where 中的子查詢應(yīng)返回包含許多行的列,例如:
SELECT NAME FROM EMPLOYEES WHERE DEPARTMENT_ID = (SELECT ID FROM DEPARTMENTS WHERE DEPARTMENT = 'IT');