mysql查询每门课程被选修的学生数
封面图
•
2026-01-16
•
MySQL
252
0
0
0
在 MySQL 中,如果你有一个学生选课的表结构,例如: - `students` 表:存储学生信息(如 `student_id`, `name` 等) - `courses` 表:存储课程信息(如 `course_id`, `course_name` 等) - `enrollments` 表:存储学生选课记录(如 `student_id`, `course_id`) 那么要查询**每门课程被选修的学生数**,可以使用 `JOIN` 和 `GROUP BY` 来实现。 ### 示例 SQL 查询: ```sql SELECT c.course_id, c.course_name, COUNT(e.student_id) AS student_count FROM courses c LEFT JOIN enrollments e ON c.course_id = e.course_id GROUP BY c.course_id, c.course_name; ``` ### 说明: - `LEFT JOIN`:确保即使某门课程没有人选修,也会显示为 0。 - `COUNT(e.student_id)`:统计每个课程有多少个学生选修。 - `GROUP BY`:按课程分组,以便统计每门课程的学生数。 --- ### 如果你只有 `enrollments` 表(没有单独的 `courses` 表): 假设 `enrollments` 表中有 `course_id` 字段,可以直接这样写: ```sql SELECT course_id, COUNT(student_id) AS student_count FROM enrollments GROUP BY course_id; ``` --- 如果你有具体的表结构,也可以告诉我,我可以帮你写出更精确的 SQL 语句。
上一篇:
mysql查询各科成绩前三名的记录(不考虑成绩并列情况)
下一篇:
mysql查询出只有两门课程的全部学生的学号和姓名
标题录入,一次不能超过6条
留言
评论