MySQL строк в столбцы, тип текста - PullRequest
0 голосов
/ 27 августа 2010

Если у меня есть таблица данных, подобная

Option_id|Component_id|Option_parent|Option_name|Option_value
1         1            0             id          
2         1            1             option1     Some value
3         1            1             option2     Other
4         1            0             id          Value
5         1            4             option1     More
6         1            4             option2     More&More

Можно ли вернуть строки с параметром option_name в качестве столбцов при предоставлении «option_name» для выбора и component_id.Option_name с «id» будет родительским, используя его «option_id».

So Select option1, option2 where Component_id = 1 returns

Option1    |Option2
Some Value  Other
More        More&More

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

1 Ответ

1 голос
/ 27 августа 2010

Использование:

  SELECT MAX(CASE WHEN t.option_name = 'option1' THEN t.option_value END) AS option1,
         MAX(CASE WHEN t.option_name = 'option2' THEN t.option_value END) AS option2
    FROM TABLE t
   WHERE t.option_name IN ('option1', 'option2')
GROUP BY t.component_id, t.option_parent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...