Du kan bruge denne løsning. Dette får alle produkter, der indeholder ALLE søgeord 1, 23 og 54:
SELECT a.*
FROM products a
INNER JOIN product_tags b ON a.product_id = b.product_id
WHERE b.tag_id IN (1,23,54)
GROUP BY a.product_id
HAVING COUNT(1) = 3
Hvor 3
er antallet af varer i din WHERE IN
liste, så du kan justere i overensstemmelse hermed baseret på mængden af tags, du vil kontrollere.