mysql根据某一字段将多条记录的字段拼接成一个字段

2023-10-08 09:43
-->

未合并的情况

SELECT
m.genealogy-computer-tips.com,
m.genealogy-computer-tips.com
AS "角色"
FROM
sys_user a
INNER JOIN sys_user_role c ON a .id=c.user_id
内连接 sys_role b ON m.genealogy-computer-tips.com =c.role_id
WHERE
a.del_flag=0
AND
b.del_flag=0

结果

id                  角色

1                   系统管理员
1                    测试角色
2                   系统管理员
2                    测试角色
9                    系统管理员
9                    测试角色
d11828f3dbf148829287aeb637cbf6ec 系统管理员
d11828f3dbf148829287aeb637cbf6ec 测试角色
fe55ff534d23453ab66fda0912f6018d系统管理员
fe55ff534d23453ab66fda09 12f6018d测试角色

合并情况

SELECT id,GROUP_CONCAT(角色) AS“角色列表”FROM
(SELECT
m.genealogy-computer-tips.com,
m.genealogy-computer-tips.com
AS“角色”
FROM sys_user a
内连接 sys_user_role c ON m.genealogy-computer-tips.com=c.user_id
内连接 sys_role b ON m.genealogy-computer-tips.com =c.role_id
WHERE
a.del_flag=0
AND
b .del_flag=0)d
按 id 分组

结果

id                     角色列表

1                    测试角色,系统管理员
2                     测试角色,系统管理员
9                     测试角色,系统管理员
d11828f3dbf148829287aeb637cbf6ec 测试角色,系统管理员
fe55ff534d23453ab66fda0912f6018d 测试角色,系统管理员

select m.genealogy-computer-tips.com,group_concat(m.genealogy-computer-tips.com) AS 角色列表
来自 sys_user a
inner join sys_user_role c on m.genealogy-computer-tips.com = c.user_id
inner join sys_role b on m.genealogy-computer-tips.com = c .role_id

哪里
a.del_flag=0
AND
b.del_flag=0
按 m.genealogy-computer-tips.com 分组

结果是一样的

-->