Вот сценарий, в котором мы хотим получить конкретный идентификатор группы. Например, 6, имеющие только 3 пользователя, говорят, что UserId с 2, 1, 3 с этой конкретной группой
Это запрос, который я пытался выполнить
SELECT group_id FROM group_users WHERE group_id IN(SELECT group_id FROM group_users GROUP BY group_id HAVING COUNT(*)=3) AND userid IN (1, 2, 3);
Ниже приведены подробности из вышеприведенного запроса, которые были разбиты на части
SELECT group_id FROM group_users GROUP BY group_id HAVING COUNT(*)=3
group_id
5
6
SELECT group_id FROM group_users WHERE group_id IN(SELECT group_id FROM group_users GROUP BY group_id HAVING COUNT(*)=3)
group_id
5
5
5
6
6
6
SELECT group_id FROM group_users WHERE group_id IN(SELECT group_id FROM group_users GROUP BY group_id HAVING COUNT(*)=3) AND userid IN (1, 2, 3)
group_id
5
5
6
6
6
SELECT group_id FROM group_users WHERE group_id IN(SELECT group_id FROM group_users GROUP BY group_id HAVING COUNT(*)=3) AND userid=1 AND userid=2 and userid = 3
group_id
NULL
Ожидаемый результат:
group_id
6
Поскольку существует только одна группа с group_id = 6
, имеющая 3 пользователей с уникальным userid = 1, 2, 3
Так что group_id = 6
должен быть получен в конечном результате!