Následující by mělo fungovat.
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;
Pokud si přejete, aby odpovídalo více než jen dvěma štítkům, můžete je snadno přidat. Nezapomeňte změnit 2 v HAVING
doložka.
Předpokládal jsem všechny řádky v tagXmedia
jsou jedinečné. V případě, že nejsou, budete muset přidat DISTINCT
do COUNT
část.