2012-01-23 87 views
2

我想生成一个HTML报告,使用PHP和下面的MySQL数据:交叉分析报表 - MYSQL

影片

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应该是som ething这样的:

 | 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 

我已经尝试了许多不同的querys和交叉教程,但他们会用案例的视频和陪审员数量有限,但我需要它是动态的。

回答

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中处理翻译。

0

使用MySQL Pivot table generator你可以立即做这个报告。 系统会要求您输入报告的列,行和值的数据源。 在列:您选择陪审员表和列在下面的截图:

enter image description here

同样应该选择影片表和标题列作为行中的数据源然后最后评论表和成绩列的价值观,你会得到你的报告,这将从你的数据库自动提供

欲了解更多信息,你可以检查以下教程: http://mysqlpivottable.net/Tutorial.html