Я пытаюсь вернуть идентификаторы DISTINCT
из таблицы, если она соответствует определенным критериям.Возвращает отдельный идентификатор, основанный на нескольких критериях
- Идентификатор должен содержать ИДС 1,26,33,49 (все)
- Идентификатор не должен содержать ИДС 38 или 46 или 67
Вот таблица ,
Вот что я до сих пор:
SELECT DISTINCT(c1.id) FROM cte c1
LEFT JOIN cte c2
ON c1.id = c2.ID
AND c2.CID = 38
where c2.id IS null
Это работает только если указать один идентификатор, который не должен быть представлен. Если я заменю этот
AND c2.CID = 38
с
AND c2.CID IN (38,46,67)
Это не вернет мне правильный идентификатор. Кроме того, если я добавлю критерии для c1.CID
, чтобы включить идентификаторы 1,26,33,49
Он также вернет неверный идентификатор.
Основываясь на этой таблице примеров, я должен только вернуться ID 12345
.
Вот SQLFIDDLE.
Я пытаюсь получить этот вывод без использования subquery
.
Любые предложения?
Я не понимаю, почему этот запрос не работает: «выберите отдельный идентификатор из вашей таблицы, где CID в (1,26,33,49)» – FLICKER
Это не сработает. «ID» может иметь несколько строк с разными «CID». Если я просто сделаю один выбор, то он исключит только строку, но это не исключает идентификатор. – smr5
критерии @burzum 'множественное число, единственное значение - это критерий, поэтому «критерий» - это не слово. –