【SQL】關於sql多表查詢:查詢初一一班所有男生的英語成績
阿新 • • 發佈:2021-02-06
技術標籤:sql訓練
student(學生資訊表):
class(班級資訊表):
score(學生成績表):
需求:查詢初一一班所有男生的英語成績
思路:
1.明確查詢條件:初一一班, 男生, 英語
2.明確查詢結果:成績
3.明確要查詢的表:student, class, score
明確這三點以後,剩下的就是如何將條件組合起來。
試想下,生活中要知道一個學生的某一課程的成績,首先要明確其班級,然後是其姓名,最後是課程名。
同理,我們可以通過以下步驟來明確sql:
①明確班級:
因為:student表通過class_id 關聯class表,
所以:SELECT class_id FROM class WHERE class_name = "初一一班"
②明確學生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 = "英語";