mysql拼接多条字段

Posted huozhongmiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql拼接多条字段相关的知识,希望对你有一定的参考价值。

未合并情况

SELECT
a.id,
b.name 
AS "role"
FROM 
sys_user a
INNER JOIN sys_user_role c ON a.id=c.user_id
INNER JOIN sys_role b ON b.id =c.role_id
WHERE
a.del_flag=0
AND
b.del_flag=0

结果

id                  role

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

合并情况

SELECT id,GROUP_CONCAT(role) AS "rolelist" FROM
(SELECT
a.id,
b.name 
AS "role"
FROM 
sys_user a
INNER JOIN sys_user_role c ON a.id=c.user_id
INNER JOIN sys_role b ON b.id =c.role_id
WHERE
a.del_flag=0
AND
b.del_flag=0)d
GROUP BY id

结果

id                       rolelist

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

或者

select a.id,group_concat(b.name) AS rolelist
from sys_user a 
inner join sys_user_role c on a.id = c.user_id
inner join sys_role b on b.id = c.role_id

WHERE
a.del_flag=0
AND
b.del_flag=0
group by a.id

结果也一样













































以上是关于mysql拼接多条字段的主要内容,如果未能解决你的问题,请参考以下文章

SQL 拼接多个字段的值&一个字段多条记录的拼接

MySQL数据库的函数使用:使用字符串拼接函数实现MySQL查询结果的拼接

MySQL 联合查询

sqlserver查询一对多的关系、合并多条记录的某字段值到一个字段

Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法

( 11 )MySQL中的联合查询