Если у меня есть таблица данных типа
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 параметров.
Использование:
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