У меня есть таблица 'зрителей' с отношением "многие ко многим"
user_id1 - целое число - пользователи, которые совершают действие посещения
user_id2 - целое число - пользователи, профиль которых посетил
И мне нужно выбрать группу user_id1 (совершившего действие), которая посещала только определенные c профили из группы user_id2
EXAMPLE DATASET
> user_id1 | user_id2
>
> 1 | 30
>
> 1 | 40
>
> 1 | 50
>
> 2 | 30
>
> 2 | 40
>
> 10 | 40
>
> 10 | 50
>
> 11 | 30
>
> 11 | 40
>
> 11 | 50
>
> 12 | 50
>
> 12 | 60
>
> 12 | 70
>
> 13 | 30
>
> 13 | 40
>
> 13 | 50
>
> 13 | 60
>
> 14 | 90
>
> 14 | 95
>
> 14 | 98
Мне нужно выбрать user_id1, который просматривал профили из user_id2 с идентификаторами, которые могут содержать '30' '40' '50' (все сразу)
Я пытался сделать так, но это не работает
SELECT
t.user_id1,
t.user_id2
FROM viewers t
WHERE
t.user_id2 in (select distinct t.user_id2 from viewers t WHERE t.user_id2 = 30)
AND t.user_id2 in (select distinct t.user_id2 from viewers t WHERE t.user_id2 = 40)
AND t.user_id2 in (select distinct t.user_id2 from viewers t WHERE t.user_id2 = 50)