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

Consulta de junção do MySQL para várias tags (relação muitos-para-muitos) que corresponde a TODAS as tags?


Usar:
  SELECT * 
    FROM OBJECTS o
    JOIN OBJECTSTAGS ot ON ot.object_id = o.id
    JOIN TAGS t ON t.id = ot.tag_id
   WHERE t.name IN ('tag1','tag2')
GROUP BY o.id
  HAVING COUNT(DISTINCT t.name) = 2

Você estava perdendo a cláusula HAVING.

Não há necessidade de LEFT JOIN se você quiser apenas linhas onde existam ambas as tags.