显示具有多个类别的值的一行

时间:2015-10-10 09:47:12

标签: mysql

我有一个名为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

1 个答案:

答案 0 :(得分:3)

使用GROUP_CONCAT功能

SELECT
 game_name, GROUP_CONCAT(category_id) categories
FROM
  games
 GROUP BY 
 game_name;
祝你好运!