使用MySQL子查詢獲取數(shù)據(jù)
MySQL子查詢可用于嵌套在SELECT、INSERT、DELETE、UPDATE等操作之中,用于查詢相關(guān)數(shù)據(jù)。子查詢返回的結(jié)果將會被外層查詢所使用。
基本語法
SELECT column_name(s) FROM table_name WHERE column_name operator (SELECT column_name FROM table_name);
子查詢需要用括號包圍,一般用在WHERE條件語句中。operator是比較運算符,可以是“=”,“>”,“<”等。
使用子查詢查詢10條數(shù)據(jù)
假設(shè)我們有一個“stu”表,包含“id”和“score”兩個字段。我們要查詢前10個成績最高的學(xué)生及其id,可使用以下子查詢:
SELECT id, score FROM stu WHERE score IN (SELECT score FROM stu ORDER BY score DESC LIMIT 10);
這個子查詢使用IN運算符,將前10個分數(shù)最高的學(xué)生的分數(shù)作為一個子集合進行查詢。
使用EXISTS子查詢查詢10條數(shù)據(jù)
如果要查詢前10個成績最高的學(xué)生及其id,可使用以下子查詢:
SELECT id, score FROM stu s1 WHERE EXISTS (SELECT id FROM stu s2 WHERE s2.score >s1.score LIMIT 9);
這個子查詢使用EXISTS運算符,返回成績排名前9名的學(xué)生成立一個子集合,再通過WHERE子句查詢成績排名前10的學(xué)生。