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

MySQL चुनें कि कहाँ कई से कई में

मान लें कि आप केवल लेख की आईडी से अधिक चाहते हैं:

SELECT a.id
      ,a.other_stuff
  FROM articles a
  JOIN article_category ac
    ON ac.article_id = a.id
GROUP BY a.id
HAVING GROUP_CONCAT(DISTINCT ac.category_id ORDER BY ac.category_id SEPARATOR ',') = '1,2'

यदि आप केवल लेख की आईडी चाहते हैं तो इसे आजमाएं:

SELECT article_id
  FROM article_category 
GROUP BY article_id
HAVING GROUP_CONCAT(DISTINCT category_id ORDER BY category_id SEPARATOR ',') = '1,2'

इसे http://sqlfiddle.com/#!2/9d213/4<पर क्रिया में देखें /ए>

यह भी जोड़ना चाहिए कि इस दृष्टिकोण का लाभ यह है कि यह क्वेरी को बदले बिना किसी भी श्रेणी की जाँच का समर्थन कर सकता है। बस '1,2' को एक स्ट्रिंग वेरिएबल बनाएं और क्वेरी में जो पास हो जाता है उसे बदलें। तो, आप '1,2,7' की एक स्ट्रिंग पास करके श्रेणियों 1, 2, और 7 वाले लेखों को आसानी से खोज सकते हैं। कोई अतिरिक्त जुड़ने की आवश्यकता नहीं है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql एकाधिक प्राथमिक कुंजी के साथ क्वेरी बदलें

  2. MYSQL - तुर्की वर्ण

  3. Yii . में खोज और फ़िल्टर मानदंड कैसे जोड़ें

  4. MySQL XAMPP सर्वर पर प्रारंभ नहीं होगा

  5. पंक्ति उत्पाद प्राप्त करें (गुणा)