mysql查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
2025-09-24 09:18
MySQL
208
0
0
0
标题录入
封面图
要查询**不同课程成绩相同的学生**的**学生编号、课程编号、学生成绩**,可以使用 `GROUP BY` 和 `HAVING` 来筛选出那些在多个课程中获得相同成绩的学生。 假设你有一个表 `scores`,结构如下: ```sql CREATE TABLE scores ( student_id INT, course_id INT, score DECIMAL(5,2) ); ``` ### 查询语句: ```sql SELECT s1.student_id, s1.course_id, s1.score FROM scores s1 JOIN scores s2 ON s1.student_id = s2.student_id AND s1.score = s2.score AND s1.course_id != s2.course_id; ``` ### 说明: - 使用自连接(`JOIN`)来比较同一学生在不同课程中的成绩。 - `s1.score = s2.score`:成绩相同。 - `s1.course_id != s2.course_id`:确保是不同的课程。 - 最终返回的是所有满足条件的记录(即同一学生在不同课程中取得相同成绩的记录)。 --- ### 如果你只需要**唯一的学生编号**,可以这样写: ```sql SELECT DISTINCT s1.student_id FROM scores s1 JOIN scores s2 ON s1.student_id = s2.student_id AND s1.score = s2.score AND s1.course_id != s2.course_id; ``` --- ### 示例数据: 假设有以下数据: | student_id | course_id | score | |------------|-----------|-------| | 1 | 1 | 80 | | 1 | 2 | 80 | | 2 | 1 | 90 | | 2 | 2 | 90 | | 3 | 1 | 75 | 那么查询结果将是: | student_id | course_id | score | |------------|-----------|-------| | 1 | 1 | 80 | | 1 | 2 | 80 | | 2 | 1 | 90 | | 2 | 2 | 90 | --- 如果你有其他表结构或具体需求,也可以告诉我,我可以帮你调整 SQL。
上一篇:
mysql求每门课程的学生人数
下一篇:
mysql查询两门以上不及格课程的同学的学号及其平均成绩
标题录入,一次不能超过6条
股票被退市了持有的股票怎么办?
T:0.006114s,M:116.78 KB
返回顶部
留言
留言
评论