一、mysql子查詢基本知識
子查詢就是在原有的查詢語句中,嵌入新的查詢,來得到我們想要的結果集。
子查詢一般分為:where型子查詢、from型子查詢和exists型子查詢。
1.where型子查詢:將內層查詢結果當做外層查詢的比較條件。
select?列1,列2,...,列n?from?表名?where?列i?=/in?(select?列1,列2,...,列n?from?表名?where?...);
2.from型子查詢:把內層的查詢結果當成臨時表,供外層sql再次查詢。查詢結果集可以當成表看待。臨時表要使用一個別名。
select?列1,列2,...,列n?from?(select?列1,列2,...,列n?from?表名?where?...)?as?表別名?where?....;
3.exists型子查詢:把外層sql的結果,拿到內層sql去測試,如果內層的sql成立,則該行取出。內層查詢是exists后的查詢。
select?列1,列2,...,列n?from?表名?where?exists?(select?列1,列2,...,列n?from?表名?where?...);
二、查詢實例
下圖為成績表和班級表數據。
?1.查詢成績表中數學成績最高的學生信息;
2.查詢成績表中各個班級的最高總成績;
3.根據成績表和班級表,找出成績表中缺失成績的班級;
推薦教程: 《sql教程》
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END