我有三个表,角色,role_privillages和模块:
roles
id name
1 Super admin
2 Sub admin
3 Viewer
role_privillages
id role_id module_id
1 1 1
2 1 2
3 1 3
4 2 1
5 2 4
6 3 3
7 3 1
modules
id name
1 Users management
2 Roles Management
3 Content Management
4 Texture Management
运行程序后,我应该得到如下结果
id name assigned_modules
1 Super Admin Users management, Roles management, Content Management
2 Sub Admin Users management, Texture management
3 Viewer Content Management, User Management
是否可以通过存储过程?这种程序会占用太多的执行时间吗?
答案 0 :(得分:1)
这样的东西应该可以使用,您可以根据需要在视图或过程中定义: -
select
r.id
, r.name
, group_concat(m.name) as assigned_modules
from roles r
inner join role_privileges p on r.id = p.role_id
inner join modules m on m.id = p.module_id
group by r.id, r.name
所以,回答你的问题: