明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

MySQL數(shù)據(jù)庫中怎么進行子查詢

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

1.png

1.首先,在一個查詢中的查詢結(jié)果作為外層查詢的條件,可以用IN關(guān)鍵字,代碼如下:

SELECT * FROM city WHERE CountryCode IN (SELECT Code FROM country);

如下圖所示:

2.png

2.其次,外層查詢的條件不在內(nèi)層查詢結(jié)果,可以用NOT IN關(guān)鍵字,代碼如下:

SELECT * FROM city WHERE CountryCode NOT IN (SELECT Code FROM country);

如下圖所示:

3.png

3.使用EXISTS關(guān)鍵字查詢時,內(nèi)層查詢語句不返回查詢的記錄,而是返回一個Boolean值;當內(nèi)層查詢返回的值為true時,外層查詢語句將進行查詢,如果返回false時,將不進行查詢或查詢結(jié)果為空,代碼如下:

SELECT * FROM city WHERE EXISTS (SELECT Name FROM country);

如下圖所示:

4.png

4.由第三步可知,與EXISTS相對的是NOT EXISTS,當內(nèi)層查詢返回的值為false時,外層查詢語句將進行查詢,如果返回true時,將不進行查詢或查詢結(jié)果為空,代碼如下:

SELECT * FROM city WHERE NOT EXISTS (SELECT Name FROM country);

如下圖所示:

5.png

5.滿足其中的任一條件,就可以通過該條件來執(zhí)行外層查詢語句,用關(guān)鍵字ANY,代碼如下:

SELECT * FROM city WHERE Population >= ANY (SELECT Population FROM country);

如下圖所示:

6.png

6.子查詢還包含比較運算符,有“>="、“<="、"!="等關(guān)鍵字,代碼如下:

SELECT * FROM city WHERE Population >=  (SELECT Population FROM country WHERE Name = 'Afghanistan');
SELECT * FROM city WHERE Population <=  (SELECT Population FROM country WHERE Name = 'Afghanistan');
SELECT * FROM city WHERE Population !=  (SELECT Population FROM country WHERE Name = 'Afghanistan');

如下圖所示:

7.png

8.png

9.png

7.滿足所有條件,只有滿足內(nèi)層查詢語句返回所有結(jié)果,代碼如下:

SELECT * FROM city WHERE Population >= ALL (SELECT Population FROM country WHERE Name = 'Afghanistan');

如下圖所示:

10.png

注意事項

注意子查詢的用法

注意子查詢中各個關(guān)鍵字的區(qū)別

以上就是MySQL數(shù)據(jù)庫中如何進行子查詢的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。