sql >> Database >  >> RDS >> Mysql

Hoe de getelde waarden te krijgen met een kommascheidingsteken als een enkele rijwaarde?

De functie die je zoekt is GROUP_CONCAT . Zie de documentatie:

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

In uw voorbeeld kunt u nog één subquery maken (voorbeeld hieronder). Of JOIN het op een standaard manier naar de oorspronkelijke zoekopdracht.

...
(
      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,
...

Let op de opmerking op NULL afhandeling in GROUP_CONCAT . Als je nullen wilt weergeven als er geen spelers aanwezig zijn, kun je COALESCE(GROUP_CONCAT(gtp.id), 0) gebruiken in plaats daarvan.




  1. Essentiële PostgreSQL-bewaking - deel 2

  2. Een getal naar boven afronden naar het dichtstbijzijnde gehele getal in SQL

  3. Hoe de LIKE-operator werkt in SQLite

  4. Wat is de beste manier om een ​​berichtenwachtrijtabel in mysql te implementeren?