1 votes

mysql : obtenir toutes les lignes dans 1 colonne

  • post (id_post, title)
  • tag (id_tag, name)
  • post_tag (id_post_tag, id_post, id_tag)

Supposons que l'id_post 3 ait 4 tags liés 1,2,3,4 (football, basket, tennis et golf).

Existe-t-il un moyen de renvoyer ce type d'information sur une seule ligne ?

  • col 1 id_post = 3
  • col 2 tags = football basket tennis golf

Remerciements

2voto

OMG Ponies Points 144785

Utiliser :

  SELECT p.id_post
         GROUP_CONCAT(DISTINCT t.name SEPARATOR ' ')
    FROM POST p
    JOIN POST_TAG pt ON pt.id_post = p.id_post
    JOIN TAG t ON t.id_tag = pt.id_post_tag
GROUP BY p.id_post

Sachez que le séparateur par défaut est une virgule, vous devez donc définir un espace unique si vous ne voulez pas de virgule entre les noms des balises.

Documentation :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X