查询学院名称是汽车学院的每门课程学习人数小于等于30人的课程名称和人数请用sql多表查询写出来
假设有两张表,一张是课程表(course),包含课程名称和课程编号;另一张是选课表(select_course),包含学生编号和所选课程编号。可以通过连接这两张表来查询学院名称是“汽车学院”的每门课程学习人数小于等于30人的课程名称和人数。
SQL语句如下:
SELECT course.course_name, COUNT(select_course.student_id) as num
FROM course
INNER JOIN select_course ON course.course_id = select_course.course_id
INNER JOIN student ON select_course.student_id = student.student_id
INNER JOIN department ON student.department_id = department.department_id
WHERE department.department_name = '汽车学院'
GROUP BY course.course_name
HAVING num <= 30;
解析:
- 使用INNER JOIN连接课程表和选课表,以获取每个选课的学生信息和所选课程的课程编号;
- 使用INNER JOIN连接学生表和部门表,以获取每个学生所在的学院;
- 使用WHERE条件过滤出学院名称是“汽车学院”的选课记录;
- 使用GROUP BY对课程名称进行分组,统计每门课程学习的人数;
- 使用HAVING条件过滤出学习人数小于等于30人的课程
原文地址: https://www.cveoy.top/t/topic/c05w 著作权归作者所有。请勿转载和采集!