查询不同课程成绩相同的学生的学号、课程号、学生成绩
时间: 2023-12-22 09:57:41 浏览: 14
学生成绩查询
可以使用如下的 SQL 查询语句来实现:
```
SELECT s.student_id, g.course_id, g.grade
FROM grades g
JOIN (
SELECT course_id, grade
FROM grades
GROUP BY course_id, grade
HAVING COUNT(DISTINCT student_id) > 1
) t
ON g.course_id = t.course_id AND g.grade = t.grade
JOIN students s
ON g.student_id = s.student_id
ORDER BY g.course_id, g.grade;
```
这个查询语句首先在 `grades` 表中查找出成绩相同的课程和分数,然后通过 `JOIN` 连接 `students` 表来获取学生的学号,最后返回结果。由于可能存在多个学生成绩相同的情况,我们使用 `GROUP BY` 和 `HAVING` 条件来过滤掉只有一个学生的课程。
需要注意的是,这个查询语句假设每个学生只会在同一门课程中有一条成绩记录。如果一个学生在同一门课程中有多条记录,那么这个查询语句可能会返回错误的结果。
阅读全文