Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter os valores contados com um separador de vírgulas como um valor de linha única


A função que você está procurando é GROUP_CONCAT . Veja a documentação:

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

No seu exemplo, você pode apenas criar mais uma subconsulta (exemplo abaixo). Ou JOIN de uma maneira padrão para a consulta original.
...
(
      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,
...

Observe o comentário em NULL manipulação em GROUP_CONCAT . Se você quiser mostrar zeros quando não houver nenhum jogador presente, use COALESCE(GROUP_CONCAT(gtp.id), 0) em vez de.