Можете да използвате това решение. Това получава всички продукти, които съдържат ВСИЧКИ ключови думи 1, 23 и 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
Където 3
е броят на елементите във вашия WHERE IN
списък, така че можете да коригирате съответно въз основа на количеството тагове, които искате да проверите.