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