CROSSTAB REPORT - MYSQL - PullRequest
       3

CROSSTAB REPORT - MYSQL

2 голосов
/ 24 января 2012

Я хочу сгенерировать отчет в формате HTML, используя PHP и следующие данные Mysql:

ВИДЕО

id | title
01 | video1
02 | video2
03 | video3
04 | video4

JURORS

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

Результат должен быть примерно таким:

       | 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 для ограниченного количества видео и присяжных, но мне это нужно длябудь динамичным.

Ответы [ 2 ]

1 голос
/ 24 января 2012

В 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 голосов
/ 22 января 2015

Используя MySQL Pivot Table Generator , вы можете сделать этот отчет мгновенно.Вам будет предложено ввести источник данных ваших столбцов, строк и значений вашего отчета.В столбцах: Вы выбираете таблицу JURORS и столбец name , как на следующем снимке экрана:

enter image description here

Аналогично, вы должны выбратьтаблица «Видео» и столбец «Заголовок» в качестве источника данных для строк, затем, наконец, таблица «Столбцы» и столбец оценок для значений, и вы получите свой отчет, который будет автоматически подаваться из вашей базы данных

Для получения дополнительной информации вы можете проверитьследующий учебник: http://mysqlpivottable.net/Tutorial.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...