1. 程式人生 > >MySQL-子查詢

MySQL-子查詢

一.把子查詢當做一個值

問題提出

要求查詢一個學生資訊,此學生的id是最高的(未知)。

解決問題

1.查詢出最高的id
2.查詢id等於最高id的學生資訊

實際語句

select * from student where id=(select max(id) from student);
在這裡插入圖片描述

二.把子查詢當做一張表

問題提出

假設有三個班的學生成績資訊,要求查出每個班的成績最高的學生資訊。

解決問題

1.查出每個班最高的成績,及是哪個班的
2.查詢每個班成績等於該班最高成績的學生資訊

實際語句

select * from test3 inner join
(select max(grade) sgrade,source from test3 group by source) b
on test3.grade=b.sgrade and test3.source=b.source;
在這裡插入圖片描述