mysql查询出只有两门课程的全部学生的学号和姓名
封面图
•
2025-10-07
•
MySQL
169
0
0
0
要查询出**只有两门课程的全部学生的学号和姓名**,首先需要明确你的数据库结构。假设你有以下表结构: ### 表结构示例: - `students` 表:存储学生信息 - `student_id`(学号) - `name`(姓名) - `enrollments` 表:存储学生选课信息 - `student_id`(学号) - `course_id`(课程编号) --- ### 查询思路: 1. 首先统计每个学生选了多少门课程。 2. 然后筛选出选课数为 2 的学生。 3. 最后获取这些学生的学号和姓名。 --- ### SQL 查询语句如下: ```sql SELECT s.student_id, s.name FROM students s WHERE ( SELECT COUNT(*) FROM enrollments e WHERE e.student_id = s.student_id ) = 2; ``` --- ### 如果使用 `JOIN` 和 `GROUP BY` 的方式: ```sql SELECT s.student_id, s.name FROM students s JOIN enrollments e ON s.student_id = e.student_id GROUP BY s.student_id, s.name HAVING COUNT(e.course_id) = 2; ``` --- ### 注意事项: - 如果有多个相同学生 ID 的记录在 `enrollments` 中(比如重复选课),请确保 `COUNT(e.course_id)` 是正确的计数方式。 - 如果想排除重复选课,可以使用 `COUNT(DISTINCT e.course_id)`。 --- ### 示例(如果要考虑不重复课程): ```sql SELECT s.student_id, s.name FROM students s JOIN enrollments e ON s.student_id = e.student_id GROUP BY s.student_id, s.name HAVING COUNT(DISTINCT e.course_id) = 2; ``` --- 如果你能提供具体的表结构或字段名,我可以帮你更精确地调整这个查询。
上一篇:
mysql查询每门课程被选修的学生数
下一篇:
mysql查询男生、女生人数
标题录入,一次不能超过6条
返回顶部
留言
留言
评论