Spowoduje to wybranie wszystkich rozmów, które mają użytkownika 1, użytkownika 2 lub obu, ale nikogo innego:
select conversationID
from conversations
group by conversationID
having count(*) = count(case when userID in (1,2) then 1 end)
Jeśli chcesz również wszystkie wątki, które mają dokładnie użytkownika 1 i 2, a nie nikogo innego, musisz również dodać warunek i:
select conversationID
from conversations
group by conversationID
having count(*) = count(case when userID in (1,2) then 1 end)
and count(*) = 2 -- number of elements in set
Jeśli identyfikator użytkownika można zduplikować, lepiej jest również użyć odrębnego:
select conversationID
from conversations
group by conversationID
having
count(distinct userID) = count(distinct case when userID in (1,2) then userID end)
and count(distinct userID) = 2 -- number of elements in set