我有一个名为games的表。每个游戏属于一个或多个类别。我有一个使用GROUP BY category_id但不返回所需结果的查询。对于下面的示例,COD属于三个category_id但查询只显示该特定游戏,而忽略了具有相同category_id的其他游戏。如何实现以下所需的查询?
查询:

SELECT *
FROM games
GROUP BY category_id

预期结果:
+----------------+--------------------------+
|   game_name    |       category_id        |
+----------------+--------------------------+
| COD            | adventure, fighting, fps |
| Tekken         | fighting                 |
| Need for Speed | racing                   |
+----------------+--------------------------+

SqlFiddle

最佳答案

使用组连接函数

SELECT
 game_name, GROUP_CONCAT(category_id) categories
FROM
  games
 GROUP BY
 game_name;

祝你好运!

关于mysql - 显示一行具有多个类别的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33052607/

10-13 00:59