MySQL Group By: Как исключить группу, если хотя бы одна строка содержит значение? - PullRequest
0 голосов
/ 23 марта 2020

Как отфильтровать группу в предложении HAVING, если хотя бы одна строка группы удовлетворяет некоторому условию? Например, если есть следующая таблица:

enter image description here

И я хочу сгруппировать по id1 и id2 и исключить любую группу, где хотя бы один из его строк имеет значение в столбце someText? Таким образом, в моих результатах группа (1,1) должна быть исключена, но (1,2), (2,1) и (2,3) должны быть возвращены. Предпочтительно, я ищу решение с использованием предложения HAVING (это просто простой пример, иллюстрирующий проблему - но я работаю над большим запросом))

1 Ответ

1 голос
/ 23 марта 2020

Вы можете использовать group by и having с условным выражением:

select id1, id2
from mytable
group by id1, id2
having max(someText = 'value') = 0
...