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

एम:एन संबंध के साथ एसक्यूएल चयन

SELECT  u.*
FROM    (
        SELECT  user_id
        FROM    tag t
        JOIN    user_has_tag uht
        ON      uht.tag_id = t.id
        WHERE   tag_name IN ('apple', 'orange', 'banana')
        GROUP BY
                user_id
        HAVING  COUNT(*) = 3
        ) q
JOIN    user u
ON      u.id = q.user_id

HAVING COUNT(*) . को हटाकर , आपको OR मिलता है AND . के बजाय (हालांकि यह सबसे कारगर तरीका नहीं होगा)

3 . को बदलकर 2 . के साथ , आपको ऐसे उपयोगकर्ता मिलते हैं जिनके ठीक तीन में से दो टैग परिभाषित होते हैं।

= 3 . को बदलकर >= 2 . के साथ , आपको ऐसे उपयोगकर्ता मिलते हैं जिनके तीन में से कम से कम दो टैग परिभाषित होते हैं।



  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. वर्तमान GMT समय के लिए MySQL क्वेरी

  3. PHP/MySQL:प्रत्येक क्वेरी के लिए नया कनेक्शन बनाएं?

  4. MySQL और ejabberd के साथ कुशल बाहरी रोस्टरिंग

  5. MySQL/SQL:अद्यतन तालिका से ही सहसंबद्ध उपश्रेणी के साथ अद्यतन करें