mysql - 左连接多个值

标签 mysql sql

我的表格

functions_groups
+---------------+----------+
| function_name | group_id |
+---------------+----------+
| function1     | 46       |
| function1     | 47       |
| function2     | 46       |
+---------------+----------+

groups
+----------+------------+
| group_id | group_name |
+----------+------------+
| 46       | Group46    |
| 47       | Group47    |
+----------+------------+

输出

+-----------+----------------------+
| Function  | Groups               |
+-----------+----------------------+
| function1 | Group46, Group47     |
| function2 | Group46              |
+-----------+----------------------+

直到现在我的查询(它给了我空行/单元格)

SELECT
    fg.function_name,
    GROUP_CONCAT(DISTINCT g.group_name SEPARATOR ', ') AS group_names
FROM functions_groups fg
LEFT JOIN groups g
    ON g.group_id = fg.group_id

我该如何解决这个问题,以便从左连接中获取多个值(用逗号分隔)?

最佳答案

我已经为您编写了一个数据库查询。我希望它能解决您的问题:

查询

SELECT 
    f.function_name 'Function', GROUP_CONCAT(DISTINCT g.group_name) 'Groups'
FROM
    functions_groups f
        LEFT JOIN
    groups g ON g.group_id = f.group_id
GROUP BY function_name;

关于mysql - 左连接多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32336136/

相关文章:

sql - 如何在 MySQL 中更新(如果存在),如果不存在(又名 "upsert"或 "merge")?

mysql - 仅选择存在的列

c# - 从网络服务器使用 MySQL 的 Windows 应用程序

mysql - MariaDB如何处理重复主键的同时插入

javascript - WebSQL,Phonegap。返回最后插入行的 ID

SQL Server 2012 - 没有 Order 子句的分页

c# - 从 MySQL 数据库中减去数量而不会变成负数

mysql - 在触发器上定义链接 (GET)

mysql - 删除mysql中字符串后面的所有内容

MySQL - 如何修改列默认值?