Найти идентификаторы, где значения находятся только в массиве - PullRequest
0 голосов
/ 12 декабря 2011

Таблица:

ID | Value
-----------------
1 | red
1 | black

2 | green
2 | black

массив («зеленый», «оранжевый», «черный»);

И мне нужно получить идентификатор результата: 2

Может кто-нибудь спасти мою жизнь, пожалуйста?

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011
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'))
2 голосов
/ 12 декабря 2011

Попробуйте:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...