1. 程式人生 > 其它 >【SQL】關於sql多表查詢:查詢初一一班所有男生的英語成績

【SQL】關於sql多表查詢:查詢初一一班所有男生的英語成績

技術標籤:sql訓練

student(學生資訊表):
在這裡插入圖片描述
在這裡插入圖片描述

class(班級資訊表):
在這裡插入圖片描述
在這裡插入圖片描述
score(學生成績表):
在這裡插入圖片描述
在這裡插入圖片描述
需求:查詢初一一班所有男生的英語成績

思路:

1.明確查詢條件:初一一班, 男生, 英語

2.明確查詢結果:成績

3.明確要查詢的表:student, class, score

明確這三點以後,剩下的就是如何將條件組合起來。

試想下,生活中要知道一個學生的某一課程的成績,首先要明確其班級,然後是其姓名,最後是課程名。

同理,我們可以通過以下步驟來明確sql:

①明確班級:

因為:student表通過class_id 關聯class表,

所以:SELECT class_id FROM class WHERE class_name = "初一一班"

==> 獲取該班的 class_id,從而和student表建立關聯

②明確學生id:

因為:student表通過stu_id 關聯 score表,

所以:SELECT stu_id from student where sex = "男" AND class_id = (SELECT class_id FROM class WHERE class_name = "初一一班") ==> 獲取該班的 class_id,從而和student表建立關聯

③通過學生id,關聯到score表,並新增查詢條件,課程名,來查詢出成績

SELECT stu.
stu_name,sco.score FROM score sco LEFT JOIN student stu ON sco.stu_id = stu.stu_id WHERE stu.class_id = (SELECT class_id FROM class WHERE class_name = "初一一班") AND stu.sex = "男" AND sco.sub_name = "英語";