Сводная таблица в MySQL

В настоящее время я сталкиваюсь с проблемой, когда мне нужно объединить несколько строк в одну строку, определенную конкретным ключом. Я знаю функциональность GROUP_CONCAT и использую ее в настоящее время, но я бы хотел избежать использования разнесения в PHP после получения моих результатов. Моя таблица выглядит так:

----------------------------------
| primary_id | key_value | value |
----------------------------------
| 1          | my_key_1  | val_1 |
| 1          | my_key_2  | val_2 |
| 1          | my_key_3  | val_3 |
| 2          | my_key_4  | val_4 |
| 2          | my_key_5  | val_5 |
----------------------------------

И я хотел бы построить MySQL-Query, который представляет это именно так для первичного идентификатора 1 и первичного идентификатора 2:

-----------------------------------------------
| primary_id | my_key_1 | my_key_2 | my_key_3 |
-----------------------------------------------
| 1          | val_1    | val_2    | val_3    |
-----------------------------------------------

------------------------------------
| primary_id | my_key_4 | my_key_5 |
------------------------------------
| 2          | val_4    | val_5    |
------------------------------------

Таким образом, я могу получить вывод в виде массива в PHP, с помощью формы:

$output[1][my_key_1] = val_1
$output[1][my_key_2] = val_2
...

Функциональность GROUP_CONCAT работает, но было бы намного лучше иметь значение в той форме, в которой оно мне было нужно, только с использованием SQL.

Буду признателен за любые указатели, с наилучшими пожеланиями.

0

Решение

Используйте опору

выберите max (регистр (когда key_value = my_key_1, затем val_1 end)),
max (случай (когда key_value = my_key_2 затем val_2 end)),
от…
так далее…

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector