nbronskiy
@nbronskiy
Настоящий Full Stack Web Developer

Можно ли «развернуть» таблицу sql?

У меня есть таблица подобного вида:

|   ID | ProductID  |  PropName  |   PropVal |
----------------------------------------------
|    1 |     560    |   Color    |   green   |
|    2 |     560    |   Family   | Resistors |
|    3 |     560    |   Series   |    375    |

Можно ли привести ее в такой:

|  ID | ProductID | Color  |  Family   |  Series |
---------------------------------------------------
|   1 |    560    | green  | Resistors |   375   |

PropName может быть около 50, так что прописывать их вручную муторно.
Может добавить все в массив и выбирать каждое значение из него и создавать столбец? а затем наполнять его значениями?
  • Вопрос задан
  • 5980 просмотров
Пригласить эксперта
Ответы на вопрос 4
Простого решения нет, но скрипт должен быть не тяжелым, т.е берете из таблицы все уникальные ProductID, по каждому выбираете из таблицы строки, создаете массив где key это PropName, а value PropVal, потом записываете все в новую таблицу, где из массива создаете столбцы с именем key, и значением value, я бы записывал все в MongoDB
Ответ написан
Комментировать
@niko83
- с одной стороны ваша желаемая структра ближе к документно ориентировано БД чем реляционке (может с монгой какой поэксперементировать),
- с другой стороны если это psql то можно использовать json field (версия 9.2, в 9.3 расширили эту функционаьность)
- с третье стороны никто не мешает сразу писать в нужную структуру создав таблицу с 50-ю полями

А простого и быстрого способа вот так взять и развернуть я не знаю. Сам с у довольствием послушаю ответ если он есть.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
может посмотрите в сторону группировки таки..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы