mysql查询课程编号为 01 的课程比 02 的课程成绩高的所有学生的学号
封面图
•
2025-10-28
•
MySQL
165
0
0
0
要查询课程编号为 `01` 的课程比 `02` 的课程成绩高的所有学生的学号,可以使用 MySQL 的 `JOIN` 操作来比较两个课程的成绩。 假设你有一个学生成绩表 `score`,其结构如下: ```sql CREATE TABLE score ( student_id VARCHAR(10), -- 学号 course_id VARCHAR(10), -- 课程编号 score INT -- 成绩 ); ``` ### 查询语句如下: ```sql SELECT a.student_id FROM score a JOIN score b ON a.student_id = b.student_id WHERE a.course_id = '01' AND b.course_id = '02' AND a.score > b.score; ``` ### 解释: - `a` 和 `b` 是对同一个 `score` 表的两次别名引用。 - `a` 对应课程编号为 `01` 的记录。 - `b` 对应课程编号为 `02` 的记录。 - `ON a.student_id = b.student_id` 确保是同一个学生的两条记录。 - `WHERE` 条件筛选出课程 `01` 的成绩大于课程 `02` 的学生。 ### 示例数据: | student_id | course_id | score | |------------|-----------|-------| | S001 | 01 | 85 | | S001 | 02 | 80 | | S002 | 01 | 75 | | S002 | 02 | 85 | ### 查询结果: ``` student_id ---------- S001 ``` 这个查询会返回所有在课程 `01` 中成绩高于课程 `02` 的学生的学号。
上一篇:
MySQL中 inner join
下一篇:
mysql查询平均成绩大于60分的学生的学号和平均成绩
标题录入,一次不能超过6条
返回顶部
留言
留言
评论