未合並情況
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
結果也一樣