我试图按照主题在一行中显示一些学生成绩数据如果学生UID相同。请建议我可以在单个Mysql查询中,或者我需要使用php条件。收集信息后,这是我的表格。
sl | uid | name | subject | score
---------------------------------------------------------
1 | a1 | AA | Math | 80
2 | b1 | BB | Math | 78
3 | a1 | AA | Physics | 70
4 | b1 | BB | Physics | 67
我希望在一行中按照主题明智地显示所有得分。
uid | name | math | physics
---------------------------------------------------
a1 | AA | 80 | 78
b1 | BB | 70 | 67
这是我的代码,它给了我不同的输出。请帮我解决这个问题。
SELECT DISTINCT a.uid, a.name,a.subject,a.score from STUDENT a, STUDENT b where a.uid=b.uid AND a.std=b.std GROUP BY a.uid, a.subject
谢谢
答案 0 :(得分:0)
这应该有效
SELECT uid, name,
SUM(CASE WHEN subject='Math' THEN score else 0 END) As 'Math',
SUM(CASE WHEN subject='Physics' THEN score else 0 END) As 'Physics'
FROM Student
GROUP BY name
答案 1 :(得分:-1)
我认为你必须使用某种枢轴机制;比如看, MySQL pivot row into dynamic number of columns