Følgende burde virke.
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;
Hvis du ønsker at få det til at matche mere end blot to tags, kan du nemt tilføje dem. Bare husk at ændre 2 i HAVING
klausul.
Jeg antog alle rækkerne i tagXmedia
er unikke. Hvis de ikke er det, bliver du nødt til at tilføje DISTINCT
til COUNT
del.