Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta de pesquisa de várias tags


O seguinte deve 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;

Se você deseja que ele corresponda a mais do que apenas duas tags, você pode adicioná-las facilmente. Apenas lembre-se de alterar o 2 no HAVING cláusula.

Eu assumi todas as linhas em tagXmedia São únicos. Caso não sejam, você terá que adicionar DISTINCT para o COUNT papel.