2012-01-23 128 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