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

MySQL केवल IN () समकक्ष खंड

इस समस्या को Relational Division . कहा जाता है

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN ('$string')
GROUP  BY boy_id 
HAVING COUNT(DISTINCT chocolate_id) = ? -- <<== number of chocolates specified

उदाहरण:

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN (1,2,3,4)
GROUP  BY boy_id 
HAVING COUNT(DISTINCT chocolate_id) = 4

हालांकि, अगर chocolate_id प्रत्येक boy_id . के लिए अद्वितीय है , DISTINCT कीवर्ड वैकल्पिक है।

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN (1,2,3,4)
GROUP  BY boy_id 
HAVING COUNT(*) = 4

अपडेट 1

...मैं टेबल में से उन लड़कों को चुनना चाहता हूं जिनके पास बिल्कुल वही चॉकलेट हैं जिनका मैंने उल्लेख किया है। अधिक नहीं कम नहीं...

SELECT boy_id 
FROM   boys_chocolates a
WHERE  chocolate_id IN (1,2,3,4) AND
        EXISTS 
        (
            SELECT  1
            FROM    boys_chocolates b
            WHERE   a.boy_ID = b.boy_ID
            GROUP   BY boy_id
            HAVING  COUNT(DISTINCT chocolate_id) = 4
        )
GROUP  BY boy_id
HAVING COUNT(*) = 4



  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. PyMySQL पुराने/स्नैपशॉट मान लौटा रहा है/क्वेरी नहीं चला रहा है?

  3. MySQL सर्वर और MySQL क्लाइंट में क्या अंतर है

  4. SQL INSERT से चयन करें

  5. MySQL अनंत पंक्तियों को ऑफ़सेट करता है