天天看點

MySQL資料庫基礎——多表查詢:子查詢MySQL資料庫基礎——多表查詢:

MySQL資料庫基礎——多表查詢:

子查詢:

1.帶IN關鍵字的子查詢:

使用IN關鍵字進行子查詢時,内層查詢語句僅傳回一個資料列,這個資料列中的值将供外層查詢語句進行比較操作。

SELECT * FROM 表1 WHERE 字段名 IN(SELECT 查詢字段 FROM 表2 WHERE 條件);
           

SELECT語句中還可以使用NOT IN關鍵字,其作用與IN相反。

2.帶EXISTS關鍵字的子查詢:

EXISTS關鍵字後面的參數可以是任意一個子查詢,這個子查詢的作用相當于測試、比較,它不會産生任何資料,隻會傳回TRUE或FALSE。當傳回值為TRUE時,外層查詢才會執行。

其文法格式如下:

SELECT * FROM 表1 WHERE EXISTS(SELECT 查詢字段 FROM 表2 WHERE 條件);
           

3.帶ANY關鍵字的子查詢:

ANY關鍵字表示滿足其中任意一個條件,它允許建立一個表達式對子查詢的傳回值清單進行比較,隻要滿足内查詢中任意一個比較條件,就傳回一個結果作為外層查詢條件。

SELECT * FROM 表1  WHERE 條件1 比較運算符 ANY(SELECT 查詢字段 FROM 表2 WHERE 條件);
           

在上述文法中條件2為“(SELECT 查詢字段 FROM 表2 WHERE 條件)”的傳回值。

4.帶ALL關鍵字的子查詢:

ALL關鍵字與ANY類似,隻不過帶ALL關鍵字的子查詢傳回的結果需同時滿足所有内查詢條件。

SELECT * FROM 表1  WHERE 條件1 比較運算符 ALL(SELECT 查詢字段 FROM 表2 WHERE 條件);
           

5.帶比較運算符的子查詢:

子查詢中還可以使用其他比較運算符,如“<”、“=”、“>”、“>=”、“<=”、“!=”等。

繼續閱讀