mysql查询学习了全部课程基本学分为3课程的学生信息
假设有以下两个表:
学生表(student):
| id | name | credit | | ---- | ---- | ------ | | 1 | 张三 | 5 | | 2 | 李四 | 2 | | 3 | 王五 | 3 | | 4 | 赵六 | 4 | | 5 | 钱七 | 3 |
课程表(course):
| id | name | credit | | ---- | -------- | ------ | | 1 | 语文 | 2 | | 2 | 数学 | 3 | | 3 | 英语 | 3 | | 4 | 物理 | 4 | | 5 | 化学 | 3 |
则查询学习了全部课程基本学分为3课程的学生信息的SQL语句如下:
SELECT s.id, s.name, SUM(c.credit) AS total_credit
FROM student s
LEFT JOIN student_course sc ON s.id = sc.student_id
LEFT JOIN course c ON sc.course_id = c.id
GROUP BY s.id
HAVING total_credit = 3;
解释:
- 使用LEFT JOIN连接学生表、学生-课程关联表和课程表,以获取学生的学习情况。
- 使用GROUP BY语句按学生ID分组,以便对每个学生的学习情况进行统计。
- 使用SUM函数计算每个学生所学课程的总学分。
- 使用HAVING语句筛选出总学分为3的学生信息
原文地址: https://www.cveoy.top/t/topic/cH5f 著作权归作者所有。请勿转载和采集!