sql - SQL Group 左连接中的行合二为一
问题描述
当我将多行合并为一行时,我尝试使用左连接创建查询。我尝试使用 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
推荐阅读
- php - 在 PHP 中使用命名空间循环 xml
- php - 如何在 PHP Laravel 中以自定义类型从 Json 文件中读取数据?
- python-3.x - PyQt5:为什么我无法显示像素图?
- node.js - 批处理:如何启动和终止特定节点进程
- sql - SUM 无法按我希望的那样工作的情况
- html - 为所有后代应用样式,除了链接不起作用
- python-2.7 - QuerySet 过滤器获取无列值,但表面上它不是无
- python - 熊猫数据框返回列标题链接到每行的数据值
- c# - 使用 Nlog 创建日志文件。创建引导程序包并使用它安装在我的机器上后,不会生成日志文件
- css - 将我的 SVG 图标包装在 SPAN 中是否会给我更多的样式功能和灵活性?