Ниже приведены мои данные:
ID | request_type ---+------------- 1 | 3 1 | 2 1 | 1 1 | 4 1 | 5 2 | 3 2 | 2 3 | 4 3 | 2
Мне нужен запрос для получения идентификаторов, для которых никогда не было типа запроса 1 ( например, 2,3 из предыдущей таблицы).
С условным агрегированием:
select id from tablename group by id having count(case when request_type = 1 then 1 end) = 0
Если 1 - наименьшее возможное значение:
1
select ID from tab group by ID having min (request_type) > 1
Или более обобщенное c:
select ID from tab group by ID having max(case when request_type = 1 then 1 else 0 end) = 0
SELECT DISTINCT `ID` FROM `my_table` WHERE `ID` NOT IN ( SELECT DISTINCT `ID` FROM `my_table` WHERE `request_type` = 1 )