Het volgende zou moeten werken.
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;
Als u wilt dat er meer dan twee tags overeenkomen, kunt u deze eenvoudig toevoegen. Vergeet niet om de 2 . te wijzigen in de HAVING
clausule.
Ik nam aan dat alle rijen in tagXmedia
zijn uniek. Als dat niet het geval is, moet u DISTINCT
. toevoegen naar de COUNT
onderdeel.