外層的成為外查詢(主查詢)
内層的稱為内查詢(子查詢)
子查詢在主查詢之前執行,結果被主查詢使用
将子查詢寫在比較條件的右側
子查詢分為單行子查詢和多行子查詢
子查詢計算出一個結果由主查詢使用,則成為單行子查詢
子查詢計算出多個結果由主查詢使用,則成為多行子查詢
4.2.1.1 單行子查詢的比較符
基本隻使用'>'、'>='、'='、'<'、'<='、'<>'
4.2.1.2 HAVING子查詢
4.2.1.3 CASE子查詢
4.2.1.4 子查詢空值問題
如果子查詢結果是空值,則外查詢也是控制
4.2.1.5 非法子查詢
Subquery returns more than 1 row
在單行查詢中,子查詢傳回了超過1行的資料
4.2.1.6 多行子查詢
多行子查詢使用的操作符
操作符
含義
IN
等于清單中的任意一個
ANY
需要和單行比較操作符一起使用,和子查詢傳回的某一個值比較
ALL
需要和單行比較操作符一起使用,和子查詢傳回的所有值比較
SOME
實際上是ANY的别名,作用相同,一般常使用ANY
子查詢傳回的結果不因主查詢的内容而改變,則成為不相關子查詢
需要将外查詢的資訊傳入内查詢
出了GROUP BY和LIMIT中其他都可以聲明子查詢。