我想使用PHP和以下Mysql数据生成HTML报告:
视频
id | title
01 | video1
02 | video2
03 | video3
04 | video4
陪审员
id | Name
01 | juror1
02 | juror2
03 | juror3
评论
id_video | id_juror | grade
01 | 01 | 5,2
02 | 01 | 4,5
03 | 01 | 2,7
04 | 01 | 7,0
01 | 02 | 3,2
02 | 02 | 9,6
03 | 02 | 4,7
04 | 02 | 8,3
OUTPUT应该是这样的:
| juror1 | juror2 | juror3
video1 | 5,2 | 3,2 | NULL
video2 | 4,5 | 9,6 | NULL
video3 | 2,7 | 4,7 | NULL
video4 | 7,0 | 8,3 | NULL
我尝试了许多不同的查询和交叉表教程,但他们会将CASE用于数量有限的视频和陪审员,但我需要它是动态的。
答案 0 :(得分:1)
在MySQL中,您不能使用 查询来执行此操作。 http://www.databasejournal.com/features/mysql/article.php/3871556/article.htm中描述的一种方法是创建一个存储过程,查找所有可能的视频和所有可能的陪审员,然后动态构建SQL查询。但是既然你是用PHP编写的,我认为你会发现在PHP中比在存储过程中更容易。或者,您可以运行简单的SELECT videos.title, jurors.name, reviews.grade FROM reviews JOIN videos ON videos.id = reviews.id_video JOIN jurors ON jurors.id = reviews.id_juror
并在PHP中处理翻译。
答案 1 :(得分:0)
使用MySQL Pivot table generator即可立即执行此报告。 系统将要求您输入报告的列,行和值的数据源。 在列中:您可以选择 JURORS 表和名称列,如以下屏幕截图所示:
同样,您应该选择视频表和标题列作为行的数据源,然后最终选择值的评论表和成绩列,您将获得报告,该报告将自动从您的数据库中提供
有关详细信息,请查看以下教程: http://mysqlpivottable.net/Tutorial.html