Таблица:
ID | Value ----------------- 1 | red 1 | black 2 | green 2 | black
массив («зеленый», «оранжевый», «черный»);
И мне нужно получить идентификатор результата: 2
2
Может кто-нибудь спасти мою жизнь, пожалуйста?
SELECT id FROM table WHERE value IN ('green', 'orange', 'black') AND id NOT IN ( SELECT id FROM table WHERE value NOT IN ('green', 'orange', 'black'))
Попробуйте:
SELECT id FROM table group by id having sum(case when value IN ('green', 'orange', 'black') then 1 else 0 end) > 0 and sum(case when value NOT IN ('green', 'orange', 'black') then 1 else 0 end) = 0