sql >> Base de Datos >  >> RDS >> Mysql

Consulta de búsqueda de etiquetas múltiples

Lo siguiente debería funcionar.

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 desea que coincida con más de dos etiquetas, puede agregarlas fácilmente. Solo recuerda cambiar el 2 en el HAVING cláusula.

Asumí todas las filas en tagXmedia son únicos. En caso de que no lo sean, deberá agregar DISTINCT al COUNT parte.