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

La jointure MySQL one-to-many avec Group By ne renvoie qu'une seule observation

Vous pouvez utiliser GROUP_CONCAT pour transformer les données de plusieurs lignes en une seule chaîne délimitée :

SELECT    a.CommentID, 
          a.Title,
          GROUP_CONCAT(b.TagID ORDER BY b.TagID) AS tags
FROM      CommentTable a
LEFT JOIN TagTable b ON a.CommentID = b.CommentID
GROUP BY  a.CommentID,
          a.Title

Dans ce cas, si un commentaire n'a pas de balise correspondante, le champ serait simplement NULL.

Démo SQLFiddle