Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête de recherche de balises multiples

Ce qui suit devrait fonctionner.

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;

Si vous souhaitez qu'il corresponde à plus de deux balises, vous pouvez facilement les ajouter. N'oubliez pas de changer le 2 dans le HAVING clause.

J'ai supposé toutes les lignes dans tagXmedia sont uniques. Dans le cas contraire, vous devrez ajouter DISTINCT au COUNT partie.