49 votes

mysql GROUP_CONCAT doublons

Je fais ma jointure à partir d'une table farmTOanimal comme celle-ci. Il existe une table farmTotool similaire

 id | FarmID  | animal
 1 |    1    | cat
 2 |    1    | dog

Lorsque je joins mes tables dans une vue, j'obtiens un résultat qui ressemble à ceci

 FarmID | animal | tool
   1   |  cat   | shovel
   1   |  dog   | shovel
   1   |  cat   | bucket
   1   |  dog   | bucket

Maintenant, je fais GROUP BY FarmID, et GROUP_CONCAT(animal) et GROUP_CONCAT(tool), j'obtiens

 FarmID |     animals     |         tools
  1    | cat,dog,cat,dog | shovel,shovel,bucket,bucket

Mais, ce que je veux vraiment, c'est un résultat qui ressemble à ça. Comment puis-je le faire?

 FarmID | animals |    tools
  1    | cat,dog | shovel,bucket

156voto

grahamparks Points 10187

Vous devez utiliser l'option DISTINCT

 GROUP_CONCAT(DISTINCT animal)

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