赞
踩
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 = "英语";
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。