ПЕРЕКРЕСТНЫЙ ОТЧЕТ — MYSQL

Я хочу создать отчет HTML, используя PHP и следующие данные 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

ВЫВОД должен быть примерно таким:

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


person Tiago Santos    schedule 23.01.2012    source источник


Ответы (2)


В 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.

person ruakh    schedule 23.01.2012

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

введите здесь описание изображения

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

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

person Peter Green    schedule 22.01.2015