У меня есть такой вид
id name characteristic value isList
1 cube sides 6 0
1 cube color blue 0
2 triangle sides 3 0
3 hexagon (null) (null) (null)
4 rectangle weight 15 0
Мне нужно выбрать все идентификаторы и имена и получить некоторые характеристики и соответствующее значение. например, я хочу получить все цифры (идентификаторы 1, 2, 3 и 4), а также характеристики сторон и цвет (если доступны, если нет, заполняются только идентификатор и имя; остальные - нулевые).
Я пытался
select *
from shapes_view
where (id = 1 or id = 2 or id = 3 or id = 4) and (characteristic like 'sides' or characteristic like 'color')
но он, очевидно, возвращает идентификаторы 1 и 2, но не 3 и 4.
Полагаю, мне нужен какой-то подзапрос, чтобы сделать это, но когда я пытаюсь соединить это представление с самим собой, я получаю длинный список комбинаций, которые совсем не соответствуют тому, что мне нужно.
Что я собираюсь получить, это что-то вроде
id name characteristic value isList
1 cube sides 6 0
1 cube color blue 0
2 triangle sides 3 0
3 hexagon (null) (null) (null)
4 rectangle (null) (null) (null)
Я знаю, что могу выбрать все значения и исключить то, что я делаю, а не то, что на стороне Java, но это звучит не очень корректно ...
Может ли кто-нибудь помочь мне в этом?
С наилучшими пожеланиями