Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल संदेश तालिका क्वेरी

यह उन सभी वार्तालापों का चयन करेगा जिनमें उपयोगकर्ता 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. विशिष्ट पहचानकर्ता के लिए समूहीकृत मानों का चयन करना

  2. पीएचपी 5:आप किस डीएएल का उपयोग कर रहे हैं?

  3. एसक्यूएल अद्वितीय वर्चर केस संवेदनशीलता प्रश्न

  4. पुराने MySQL संस्करण में Group_concat

  5. MYSQL:अगर OR कंडीशन और REGEXP मैच हो रहा है