Thao tác này sẽ chọn tất cả các cuộc hội thoại có người dùng 1 hoặc người dùng 2 hoặc cả hai chứ không có ai khác:
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
Nếu bạn cũng muốn tất cả các cuộc hội thoại có chính xác người dùng 1 và 2 và không có ai khác, bạn cũng phải thêm điều kiện và:
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
Nếu userID có thể bị trùng lặp, bạn cũng nên sử dụng riêng biệt:
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