使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:

摘要:最近在看一个开源框架,其中用户,角色,资源,这块我感觉比较重要,所以就自己也模仿着写了下,其中在获取指定用户下的权限资源的时候遇到问题了,开始时,我首先想到的方法就是通过用户->角色->资源,然后返回到前台进行遍历,但是感觉这样比较麻烦,后来再想想,其实可以通过关联查询的方式一次性查出指定用户下的权限范围内的资源列表,所以下面我就写一个我的关联查询的SQL语句:

一:写关联查询的SQL语句之前先上个图,把用户,角色,资源的关系看一下,如下图:


二:下面就附上我的关联查询的SQL语句,这里主要查询的表包括:用户表:tb_cms_user,角色表:tb_cms_role,用户,角色关联表:tb_cms_user_role,资源表:tb_cms_menu,角色,资源关联表:tb_cms_role_menu

SELECT DISTINCT m.* from tb_cms_role_menu rm
INNER JOIN tb_cms_role r ON rm.role_id = r.id
INNER JOIN tb_cms_user_role ur ON rm.role_id = ur.role_id
INNER JOIN tb_cms_user u ON u.userid = ur.user_id
INNER JOIN tb_cms_menu m ON rm.menu_id = m.id
and u.username = 'admin' order by m.id

上面的SQL语句查询的结果就是用户名为admin的用户所具有的权限资源列表,如下图:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值