查询期末成绩大于任何一个老师所教学生的期末成绩的学生姓名、选修课程号、成绩
时间: 2024-10-11 20:13:24 浏览: 26
【SQL语句练习】(一) 查询学生获得的总学分
4星 · 用户满意度95%
为了完成这样的查询,你需要有两个表:一个学生课程表(如`student_courses`,包含学生ID,课程ID,成绩等信息)和一个教师课程表(如`teacher_courses`,包含教师ID,课程ID等信息)。假设成绩都是直接比较的数值,不是排名。
你可以使用子查询和连接操作来找出这样的学生信息,如下所示:
```sql
SELECT sc.student_name, sc.course_code, sc.score
FROM student_courses sc
JOIN (
SELECT teacher_course.teacher_id, MAX(student_courses.score) as max_score
FROM teacher_courses tc
JOIN student_courses sc ON sc.course_id = tc.course_id
GROUP BY tc.teacher_id
) tcm on tcm.teacher_id = sc.teacher_id AND sc.score > tcm.max_score;
```
这个查询首先找到每个老师所教课程的最大成绩(`max_score`),然后在学生课程表中选择那些比老师最大成绩还要高的学生,返回他们的姓名、课程号和成绩。
阅读全文