mysql 查询"01"课程比"02"课程成绩高的学生的信息及课程分数 要在列显示01和02的成绩
时间: 2024-11-05 14:32:55 浏览: 49
毕设课程设计资料-Java学生课程成绩教师信息管理系统JavaWebServlet+Mysql+Jsp+Tomcat
在MySQL中,你可以使用JOIN、GROUP BY和HAVING子句来查询"01"课程和"02"课程的成绩,并找出成绩高于"02"课程的学生及其分数。假设我们有两个表,一个是`students`表记录学生信息,另一个是`courses`表记录课程和成绩,可以按照以下SQL语句编写:
```sql
SELECT s.student_id, s.student_name, c1.course_name AS '01_score', c2.course_name AS '02_score'
FROM students s
LEFT JOIN scores sc1 ON s.student_id = sc1.student_id AND sc1.course_code = '01'
LEFT JOIN scores sc2 ON s.student_id = sc2.student_id AND sc2.course_code = '02'
WHERE c1.course_name IS NOT NULL AND c1.score > c2.score;
```
这个查询做了以下操作:
1. 使用LEFT JOIN连接`students`表和`scores`表,分别对应学生的ID。
2. 指定`course_code`为'01'和'02',获取对应的课程名和分数。
3. WHERE子句筛选出'01'课程的分数大于'02'课程分数的学生。
阅读全文