Förutsatt att du vill ha mer än bara artikelns id:
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'
Om allt du vill ha är artikelns id, prova detta:
SELECT article_id
FROM article_category
GROUP BY article_id
HAVING GROUP_CONCAT(DISTINCT category_id ORDER BY category_id SEPARATOR ',') = '1,2'
Se den i aktion på http://sqlfiddle.com/#!2/9d213/4
Ska också tillägga att fördelen med detta tillvägagångssätt är att det kan stödja kontroll av valfritt antal kategorier utan att behöva ändra frågan. Gör bara '1,2' till en strängvariabel och ändra vad som skickas in i frågan. Så du kan lika gärna söka efter artiklar med kategorierna 1, 2 och 7 genom att skicka en sträng med "1,2,7". Inga ytterligare anslutningar behövs.