Php 课程和学生成绩表-MySQL
我想做一张课程和学生成绩表 教训Php 课程和学生成绩表-MySQL,php,mysql,Php,Mysql,我想做一张课程和学生成绩表 教训 ID | Lesson_Name | Teacher_Name --------------------------------- 1 | Maths | Teacher1 2 | Literature | Teacher2 3 | Psychology | Teacher3 4 | Law | Teacher4 学生成绩 ID | LessonID | Student ID |
ID | Lesson_Name | Teacher_Name
---------------------------------
1 | Maths | Teacher1
2 | Literature | Teacher2
3 | Psychology | Teacher3
4 | Law | Teacher4
学生成绩
ID | LessonID | Student ID | Mark
---------------------------------
1 | 1 | 1 | 100
2 | 1 | 2 | 70
3 | 2 | 1 | 80
4 | 3 | 2 | 30
5 | 2 | 3 | 60
学生
ID | Student
---------------------------------
1 | John
2 | Ashley
3 | Geroge
4 | Steve
我想要一张像这样的桌子
Lesson | Teacher | Student1 | Student2 | Student3
-------------------------------------------------------
Maths | Teacher1 | 100 | 70 | 60
Literature | Teacher2 | 70 | 40 |
Psychology | Teacher3 | | 50 | 30
Law | Teacher4 | 30 | 60 |
目前,我通过下面的查询获取所有数据,并使用PHP解析它们以构建表
SELECT
l.id,l.lesson_id,l.lesson_name,l.teacher_name,
GROUP_CONCAT(CONCAT_WS(':', sm.studentid, sm.studentmark) SEPARATOR ',') as students
FROM lessons l
LEFT JOIN student_marks sm ON l.lesson_id = sm.lesson_id
GROUP BY l.lesson_id
有没有更有效的方法 您对此有什么问题?搜索“动态MySQL PIVOT”。可能与