mysql 一个学生多个科目.每个科目一个成绩.查询展示一条记录.一个学生多列科目成绩
时间: 2024-03-16 18:44:18 浏览: 79
你可以使用MySQL中的PIVOT操作来实现这个功能。具体操作步骤如下:
1. 使用JOIN将学生表和成绩表连接起来,连接条件为学生表中的学生ID与成绩表中的学生ID相等。
2. 使用PIVOT操作将每个科目的成绩作为一列进行展示,PIVOT操作可以使用MySQL中的CASE语句实现。
下面是一个示例的SQL查询语句,假设学生表的表名为students,成绩表的表名为scores,学生ID对应的列名为student_id,科目对应的列名为subject,成绩对应的列名为score:
```
SELECT students.student_id,
MAX(CASE WHEN scores.subject = '语文' THEN scores.score ELSE NULL END) AS '语文',
MAX(CASE WHEN scores.subject = '数学' THEN scores.score ELSE NULL END) AS '数学',
MAX(CASE WHEN scores.subject = '英语' THEN scores.score ELSE NULL END) AS '英语'
FROM students
JOIN scores ON students.student_id = scores.student_id
GROUP BY students.student_id;
```
这个查询语句会将每个学生的ID和对应的每个科目的成绩作为一列进行展示,每个学生对应的记录只有一行。你可以根据自己的实际需求,修改查询语句中的表名、列名和PIVOT操作的条件。
阅读全文