मान लें कि आप केवल लेख की आईडी से अधिक चाहते हैं:
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 वाले लेखों को आसानी से खोज सकते हैं। कोई अतिरिक्त जुड़ने की आवश्यकता नहीं है।