假设有以下两个表:

学生表(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;

解释:

  1. 使用LEFT JOIN连接学生表、学生-课程关联表和课程表,以获取学生的学习情况。
  2. 使用GROUP BY语句按学生ID分组,以便对每个学生的学习情况进行统计。
  3. 使用SUM函数计算每个学生所学课程的总学分。
  4. 使用HAVING语句筛选出总学分为3的学生信息
mysql查询学习了全部课程基本学分为3课程的学生信息

原文地址: https://www.cveoy.top/t/topic/cH5f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录