我有一个MYSQL数据库为每个学期的学生存储水平的工作。
我很好地创建了php页面、查询等,并且非常熟悉创建表所需的hmtl/css。我对数组有基本的理解。
我挣扎的地方是如何获取每个学生的数据,并将其显示在html表的列中。
以前,我在数据库中的评估表有多个列-- aut7、spr7、sum7等等,所以很容易在html表中显示。然而,我一直在努力使数据库更有效,所以现在将每个评估存储为一个单独的记录--数据库的设置要好得多,但出现了以下问题(我缺乏知识!)
我所指的一个简单例子如下:
这是查询的结果:
student_id term level
1 aut7 3b
1 spr7 3a
1 sum7 4c
2 aut7 3a
2 spr7 4c
2 sum7 4b我希望它在我的html/css表中显示如下:
Student Aut7 Spr7 Sum7
1 3b 3a 4c
2 3a 4c 4a如果有人能帮助一个相对较新的PHP/MySQL用户,我将非常感激。
发布于 2014-02-23 03:03:55
你需要改变你的结果。不幸的是,MySQL确实有PIVOT,但是您可以构建这样的查询以获得相同的结果
SELECT student_id,
MAX(CASE WHEN term = 'aut7' THEN level END) Aut7,
MAX(CASE WHEN term = 'spr7' THEN level END) Spr7,
MAX(CASE WHEN term = 'sum7' THEN level END) Sum7
FROM student_terms
GROUP BY student_id参见SQL Fiddle中的演示
https://stackoverflow.com/questions/21963378
复制相似问题