Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получите преброените стойности с разделител запетая като стойност на един ред

Функцията, която търсите е GROUP_CONCAT . Вижте документацията:

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

Във вашия пример можете просто да създадете още една подзаявка (пример по-долу). Или JOIN по стандартен начин към оригиналната заявка.

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

Обърнете внимание на коментара за NULL обработка в GROUP_CONCAT . Ако искате да показвате нули, когато няма налични играчи, може да искате да използвате COALESCE(GROUP_CONCAT(gtp.id), 0) вместо това.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CI - показва грешка в базата данни или неуспешен

  2. разширяване на класа на PDO

  3. Задействане за промяна на стойността на колоната?

  4. SQL за създаване на матрична таблица

  5. Вземете свързаното име на база данни mysql (JDBC)