Dette vil vælge alle samtaler, der har bruger 1 eller bruger 2, eller begge, men ingen andre:
select conversationID
from conversations
group by conversationID
having count(*) = count(case when userID in (1,2) then 1 end)
Hvis du også vil have alle samtaler, der har præcis bruger 1 og 2, og ingen andre, skal du også tilføje en og betingelse:
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
Hvis bruger-ID kan duplikeres, er det også bedre at bruge distinkt:
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