mysql求每门课程的学生人数
封面图
•
2025-11-21
•
MySQL
221
0
0
0
在 MySQL 中,如果你想查询**每门课程的学生人数**,通常需要以下两张表: - `students` 表(学生信息) - `courses` 表(课程信息) - `enrollments` 表(学生选课记录,用于关联学生和课程) 假设你有如下结构的表: ### 1. `students` 表 ```sql CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(100) ); ``` ### 2. `courses` 表 ```sql CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(100) ); ``` ### 3. `enrollments` 表(学生选课记录) ```sql CREATE TABLE enrollments ( student_id INT, course_id INT, FOREIGN KEY (student_id) REFERENCES students(student_id), FOREIGN KEY (course_id) REFERENCES courses(course_id) ); ``` --- ### 查询每门课程的学生人数 你可以使用 `JOIN` 和 `GROUP BY` 来实现这个需求: ```sql SELECT 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 的课程)。 - 如果你只想显示有学生的课程,可以使用 `INNER JOIN`。 --- ### 示例输出: | course_name | student_count | |-------------|---------------| | 数学 | 5 | | 英语 | 8 | | 物理 | 3 | | 历史 | 0 | --- 如果你的表结构不同,请提供具体表结构,我可以帮你调整 SQL 语句。
上一篇:
mysql查询课程编号为03且课程成绩在80分以上的学生的学号和姓名
下一篇:
mysql查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
标题录入,一次不能超过6条
留言
评论