Как повернуть таблицу в mysql с помощью модели

Мне нужно повернуть таблицу в mysql, и я моделирую ее на Таблица PIvoting вокруг столбца даты в Mysql, что является почти идеальным примером того, что мне нужно сделать. Но я не получаю результата, когда запускаю его и не вижу, что делаю не так. Таблица у меня такая:

mediaID q_short_name start_time stop_time audio_file
ee  CVV Number       208        210       j.mp3
ee  Expiration Date  308        310       j.mp3
ff  CVV Number       124        127       k.mp3
ff  Expiration Date  166        169       k.mp3

и я хочу, чтобы это было так:

mediaID CVVstart_T CVVstop_T Exp_start_time Exp_stop_time audio_file
ee      208      210      308            310            j.mp3
ff      124      127      166            169            k.mp3

поэтому я попробовал это в качестве первого шага:

Create view my_test_extended as (select my_test.mediaID, case when 
q_short_name = 'CVV Number' then my_test.start_time end as CVVstart_T 
from my_test);

Это дает мне запрос ОК, затронуто 0 строк. Как мне настроить запрос, чтобы получить желаемый результат?

В вашем запросе есть фигурные кавычки, вам нужно использовать обычные одинарные кавычки.

Barmar 09.06.2018 01:19

Для поворота в MySQL обычно требуется пункт GROUP BY.

Barmar 09.06.2018 01:20

Спасибо, Бармар, исправил кавычки и перевел их в верхний регистр, и он работал без ошибок, получил запрос ОК, затронуто 0 строк.

topplethepat 09.06.2018 01:31

Создание представления не влияет на какие-либо строки, поэтому ожидаемым результатом является 0 rows affected.

Barmar 09.06.2018 01:33

Вы уверены, что не хотите делать это в коде приложения?

Strawberry 09.06.2018 07:39
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
5
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Давайте поговорим о «самосоединении» вместо «поворота».

SELECT  c.mediaID,
        c.start_time AS CVVstart,
        c.end_time   AS CVVstop,
        e.start_time AS ExpStart,
        e.stop_time AS ExpStop,
        c.audio_file
    FROM  my_test AS c
    JOIN  my_test AS e  USING(mediaID)
    WHERE  c.q_short_name = 'CVV Number'
      AND  e.q_short_name = 'Expiration Date';

Совершенно верно. К сожалению, хотя моя таблица больше, чем эта, мне нужно будет выяснить, как использовать самосоединение с еще несколькими строками, которые должны стать столбцами.

topplethepat 12.06.2018 19:36

Другие вопросы по теме