Poniższe powinno działać.
SELECT media_id
FROM tagXmedia
WHERE tag_id IN (SELECT id FROM tag WHERE name IN ('home','hawaii'))
GROUP BY media_id
HAVING COUNT(tag_id) = 2;
Jeśli chcesz, aby pasował do więcej niż dwóch tagów, możesz je łatwo dodać. Pamiętaj tylko o zmianie 2 w HAVING
klauzula.
Założyłem wszystkie wiersze w tagXmedia
są wyjątkowe. Jeśli tak nie jest, musisz dodać DISTINCT
do COUNT
część.