首頁 > 資料庫 > mysql教程 > MySQL資料庫中如何進行子查詢

MySQL資料庫中如何進行子查詢

黄舟
發布: 2017-08-03 10:20:27
原創
2473 人瀏覽過

子查詢是將一個查詢語句嵌套在另一個查詢語句中,內層查詢語句的查詢結果,可以作為外層查詢語句提供查詢條件。子查詢中可能包括IN、NOT IN、ANY、ALL、EXISTS和NOT EXISTS等關鍵字,還包括比較運算符,如“=”、“!=”等,那麼如何進行子查詢,具體操作如下:

MySQL資料庫中如何進行子查詢

1.首先,在一個查詢中的查詢結果作為外層查詢的條件,可以用IN關鍵字,程式碼如下:

#
SELECT * FROM city WHERE CountryCode IN (SELECT Code FROM country);
登入後複製

如下圖所示:

MySQL資料庫中如何進行子查詢

2.其次,外層查詢的條件不在內層查詢結果,可以用NOT IN關鍵字,程式碼如下:

SELECT * FROM city WHERE CountryCode NOT IN (SELECT Code FROM country);
登入後複製

如下圖所示:

MySQL資料庫中如何進行子查詢

#3.使用EXISTS關鍵字查詢時,內層查詢語句不傳回查詢的記錄,而是傳回一個Boolean值;當內層查詢傳回的值為true時,外層查詢語句將進行查詢,如果傳回false時,將不進行查詢或查詢結果為空,程式碼如下:

SELECT * FROM city WHERE EXISTS (SELECT Name FROM country);
登入後複製

如下圖:

MySQL資料庫中如何進行子查詢

#4.由第三步驟可知,與EXISTS相對的是NOT EXISTS,當內層查詢傳回的值為false時,外層查詢語句將進行查詢,如果傳回true時,將不進行查詢或查詢結果為空,程式碼如下:

SELECT * FROM city WHERE NOT EXISTS (SELECT Name FROM country);
登入後複製

如下圖所示:

MySQL資料庫中如何進行子查詢

5.滿足其中的任一條件,就可以透過該條件來執行外層查詢語句,用關鍵字ANY,程式碼如下:

SELECT * FROM city WHERE Population >= ANY (SELECT Population FROM country);
登入後複製

如下圖所示:

MySQL資料庫中如何進行子查詢

#6.子查詢也包含比較運算符,有「>= "、「<="、"!="等關鍵字,程式碼如下:

SELECT * FROM city WHERE Population >=  (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
SELECT * FROM city WHERE Population <=  (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
SELECT * FROM city WHERE Population !=  (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
登入後複製

如下圖所示:

MySQL資料庫中如何進行子查詢

MySQL資料庫中如何進行子查詢

MySQL資料庫中如何進行子查詢


MySQL資料庫中如何進行子查詢

################7.滿足所有條件,只有滿足內層查詢語句傳回所有結果,程式碼如下:######
SELECT * FROM city WHERE Population >= ALL (SELECT Population FROM country WHERE Name = &#39;Afghanistan&#39;);
登入後複製
###如下圖中所示:##################注意事項######注意子查詢的用法######注意子查詢中各個關鍵字的區別###

以上是MySQL資料庫中如何進行子查詢的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板