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

Comment obtenir les valeurs comptées avec un séparateur virgule en tant que valeur de ligne unique

La fonction que vous recherchez est GROUP_CONCAT . Voir la documentation :

http://dev.mysql .com/doc/refman/5.7/en/group-by-functions.html#function_group-concat

Dans votre exemple, vous pouvez simplement créer une autre sous-requête (exemple ci-dessous). Ou JOIN de manière standard à la requête d'origine.

...
(
      SELECT GROUP_CONCAT(gtp.id)
          FROM game_table_players gtp
          LEFT JOIN game_rounds gr ON gr.id = gtp.game_round_id
      WHERE gt.id = gtp.game_table_id
          AND gtp.quit<>1 AND gr.finish=0
) AS players,
...

Notez le commentaire sur NULL gestion dans GROUP_CONCAT . Si vous souhaitez afficher des zéros lorsqu'aucun joueur n'est présent, vous pouvez utiliser COALESCE(GROUP_CONCAT(gtp.id), 0) à la place.