यह उन सभी वार्तालापों का चयन करेगा जिनमें उपयोगकर्ता 1 या उपयोगकर्ता 2, या दोनों हैं, लेकिन कोई अन्य नहीं:
select conversationID
from conversations
group by conversationID
having count(*) = count(case when userID in (1,2) then 1 end)
यदि आप भी ऐसी सभी बातचीत चाहते हैं, जिनमें बिल्कुल उपयोगकर्ता 1 और 2 हों, और कोई अन्य नहीं, तो आपको एक और शर्त भी जोड़नी होगी:
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
यदि उपयोगकर्ता आईडी को दोहराया जा सकता है, तो विशिष्ट का उपयोग करना भी बेहतर है:
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