查询每个学生所学课程的最高成绩,要求列出学号、姓名、课程名称和成绩
时间: 2023-11-16 14:05:47 浏览: 156
假设有三张表:学生表(students)、课程表(courses)和成绩表(scores),表结构如下:
学生表(students):
| id | name |
|----|------|
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
课程表(courses):
| id | name |
|----|--------|
| 1 | 语文 |
| 2 | 数学 |
| 3 | 英语 |
成绩表(scores):
| id | student_id | course_id | score |
|----|------------|----------|-------|
| 1 | 1 | 1 | 90 |
| 2 | 1 | 2 | 80 |
| 3 | 1 | 3 | 85 |
| 4 | 2 | 1 | 75 |
| 5 | 2 | 2 | 95 |
| 6 | 2 | 3 | 90 |
| 7 | 3 | 1 | 85 |
| 8 | 3 | 2 | 80 |
| 9 | 3 | 3 | 95 |
可以使用如下 SQL 语句查询每个学生所学课程的最高成绩:
```
SELECT students.id, students.name, courses.name, MAX(scores.score)
FROM students, courses, scores
WHERE students.id = scores.student_id AND courses.id = scores.course_id
GROUP BY students.id, courses.id;
```
执行以上 SQL 语句,可以得到以下结果:
| id | name | name | max |
|----|------|------|-----|
| 1 | 张三 | 语文 | 90 |
| 1 | 张三 | 数学 | 80 |
| 1 | 张三 | 英语 | 85 |
| 2 | 李四 | 语文 | 75 |
| 2 | 李四 | 数学 | 95 |
| 2 | 李四 | 英语 | 90 |
| 3 | 王五 | 语文 | 85 |
| 3 | 王五 | 数学 | 80 |
| 3 | 王五 | 英语 | 95 |
阅读全文