左侧的SQL组行合并为一行

左侧的SQL组行合并为一行,sql,mariadb,left-join,mariadb-10.3,Sql,Mariadb,Left Join,Mariadb 10.3,当我将多行合并为一行时,我尝试使用左连接创建查询。我尝试使用GROUP_CONTENT函数,但当我尝试使用它时,我的数据库服务器就坏了。我使用MariaDB 10.3.17。我有这样的桌子: 游戏: game_id game_name 1 Test 2 Stack 3 Other 数据单元开发人员: dev_id dev_name 1 Electronic Arts 2 BioWare 3 2K Games 游戏开发者 dev

当我将多行合并为一行时,我尝试使用左连接创建查询。我尝试使用GROUP_CONTENT函数,但当我尝试使用它时,我的数据库服务器就坏了。我使用MariaDB 10.3.17。我有这样的桌子:

游戏:

game_id game_name
1       Test
2       Stack
3       Other
数据单元开发人员:

dev_id dev_name
1      Electronic Arts
2      BioWare
3      2K Games
游戏开发者

developer_id game_id
1            1
2            1
2            3
我想要的结果是:

game_id game_name devs
1       Test      Electonics Arts, BioWare
2       Stack     2K Games
我的两个sql,但不起作用

SELECT games.*, GROUP_CONCAT(data_developers.dev_name) 
FROM games 
LEFT JOIN game_developers ON game_developers.game_id = games.game_id
LEFT JOIN data_developers ON data_developers.dev_id = game_developers.dev_id
LIMIT 500
第二个问题

SELECT games.*
FROM games
LEFT JOIN game_developers ON game_developers.game_id = games.game_id
LEFT JOIN 
(SELECT GROUP_CONCAT(data_developers.developer_name) as developers, 
data_developers.developer_id FROM data_developers) x 
ON x.developer_id = game_developers.developer_id

但是当然,也不起作用:

您的查询应该如下所示-

SELECT A.game_id,B.Game_name,GROUP_CONCAT(C.dev_name)
FROM game_developers A
INNER JOIN Games B ON A.game_id = B.game_id
INNER JOIN data_developers C ON A.developer_id = C.dev_id
GROUP BY A.game_id,B.Game_name

内部连接工作:但这与GROUP_CONCAT有什么区别@姆克拉巴尼