有学生表(T_STUDENTS),成绩表(T_SCORES),课程表(T_CORSES),写出查询每个学生语文,数学,物理三门课程的sql,结果列为学生id,姓名,语文分数,数学分数,物理分数
时间: 2024-01-19 22:03:10 浏览: 62
c++学生成绩管理系统_成绩管理系统_学生成绩管理系统_
5星 · 资源好评率100%
好的,可以使用以下 SQL 查询语句:
```
SELECT
T_STUDENTS.id,
T_STUDENTS.name,
MAX(CASE WHEN T_COURSES.name = '语文' THEN T_SCORES.score ELSE NULL END) AS '语文分数',
MAX(CASE WHEN T_COURSES.name = '数学' THEN T_SCORES.score ELSE NULL END) AS '数学分数',
MAX(CASE WHEN T_COURSES.name = '物理' THEN T_SCORES.score ELSE NULL END) AS '物理分数'
FROM
T_STUDENTS
JOIN T_SCORES ON T_STUDENTS.id = T_SCORES.student_id
JOIN T_COURSES ON T_SCORES.course_id = T_COURSES.id
GROUP BY
T_STUDENTS.id,
T_STUDENTS.name;
```
该查询语句通过联合查询 T_STUDENTS、T_SCORES 和 T_COURSES 表,使用 CASE WHEN 语句将每个学生的三门课程分数分别作为结果列,最终通过 GROUP BY 对学生进行分组,得到每个学生的语文、数学和物理分数。
阅读全文