mysql查询“C语言程序设计”课程分数大于该课程平均分数的学生的学号、姓名和分数信息在三个表里一个grade一个curriculum一个student
时间: 2024-05-19 14:11:23 浏览: 129
C语言课程设计 成绩查询系统
5星 · 资源好评率100%
可以使用如下的SQL语句:
SELECT s.id, s.name, g.score
FROM student s
INNER JOIN grade g ON s.id = g.student_id
INNER JOIN curriculum c ON g.curriculum_id = c.id
WHERE c.name = 'C语言程序设计' AND g.score > (
SELECT AVG(g2.score)
FROM grade g2
INNER JOIN curriculum c2 ON g2.curriculum_id = c2.id
WHERE c2.name = 'C语言程序设计'
)
ORDER BY s.id;
解释:
- 首先使用INNER JOIN将三个表连接起来,其中student表和grade表通过学生的id关联,grade表和curriculum表通过课程的id关联;
- 然后使用WHERE子句筛选出课程名称为“C语言程序设计”的记录,并使用子查询计算出该课程的平均分数,并将平均分数与学生的分数进行比较;
- 最后使用ORDER BY子句按照学生的id升序排序。
阅读全文