web-dev-qa-db-fra.com

mysql GROUP_CONCAT en double

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 (outil), je reçois

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 à ceci. Comment puis-je le faire?

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

Vous devez utiliser l'option DISTINCT:

GROUP_CONCAT(DISTINCT animal)
136
grahamparks