Följande bör fungera.
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;
Om du vill att det ska matcha mer än bara två taggar kan du enkelt lägga till dem. Kom bara ihåg att ändra 2 i HAVING
klausul.
Jag antog alla rader i tagXmedia
är unika. Om de inte är det måste du lägga till DISTINCT
till COUNT
del.