Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Suchabfrage mit mehreren Tags

Folgendes sollte funktionieren.

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;

Wenn Sie möchten, dass mehr als nur zwei Tags übereinstimmen, können Sie diese einfach hinzufügen. Denken Sie nur daran, die 2 zu ändern im HAVING Klausel.

Ich habe alle Zeilen in tagXmedia angenommen sind einzigartig. Falls dies nicht der Fall ist, müssen Sie DISTINCT hinzufügen zu COUNT Teil.