MySQL常常用到select嵌套查詢,也叫子查詢。嵌套查詢就是在一個查詢語句中需要用到另一個查詢語句的結(jié)果。在MySQL中,嵌套查詢可以作為where子句、from子句、select子句中的表達式等。
下面是一些使用嵌套查詢的示例:
-- 查詢出生年份在1980年之后的所有學(xué)生 SELECT * FROM students WHERE year_of_birth >( -- 子查詢,查詢1980年 SELECT YEAR('1980-01-01') ); -- 查詢購買價值超過平均值的所有商品 SELECT * FROM products WHERE price >( -- 子查詢,查詢商品價格的平均值 SELECT AVG(price) FROM products ); -- 查詢有至少兩門不及格的學(xué)生姓名和科目 SELECT name, subject FROM scores WHERE name IN ( -- 子查詢,查詢至少有兩門不及格的學(xué)生姓名 SELECT name FROM ( SELECT name, COUNT(*) as cnt FROM scores WHERE score< 60 GROUP BY name HAVING cnt >= 2 ) AS t );
總結(jié)來說,MySQL中的select嵌套查詢可以在各種查詢場景中使用,并且可以通過給嵌套查詢起別名或使用嵌套查詢作為臨時表等方式進行更復(fù)雜的查詢。