摘要:最近在看一个开源框架,其中用户,角色,资源,这块我感觉比较重要,所以就自己也模仿着写了下,其中在获取指定用户下的权限资源的时候遇到问题了,开始时,我首先想到的方法就是通过用户->角色->资源,然后返回到前台进行遍历,但是感觉这样比较麻烦,后来再想想,其实可以通过关联查询的方式一次性查出指定用户下的权限范围内的资源列表,所以下面我就写一个我的关联查询的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的用户所具有的权限资源列表,如下图:
分享到:
相关推荐
【SQL】在sql server中 delete时 使用INNER JOIN 京华志出品 必数精华
Join on/inner join on/full join on/full outer join on/left join on/right join on/cross join on; 在使用jion时,on和where条件的区别;
sql的 INNER JOIN 语法,sql的 INNER JOIN 语法
这里使用了3表关联,对于多表关联的 INNER JOIN 写法有一个技巧 1. 先写最简单的2表关联 INNER JOIN 2. 然后使用 () 从 FROM 之后到语句结尾全部扩起来 3. 在语句结尾开始连接与下一个表的 INNER JOIN 记住这个原则...
sql多表连接查询inner join, left join , right join ,full join ,cross join Posted on 2008-05-07 21:55 我开始懂了 阅读(21431) 评论(9) 编辑 收藏 inner join,full outer join,left join,right jion 内部连接 ...
关于SQL 中的inner join的使用,是DOC文档,希望对大家有用,关于SQL 中的inner join的使用,是DOC文档,希望对大家有用
SQL中的left outer join,inner join,right outer join用法详解
SQL语句inner join,left join ,right join连接的不同之处, 非常实用
SQL语句left join/right join/inner join 的用法比较 SQL语句left join/right join/inner join 的用法比较
inner join、 left join 、right join、 outer join之间的区别
SqlServer中的分组统计相信大家都已经不陌生了,在此介绍另一种分组的统计方式,那就是结合使用Inner Join来实现。
对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,...
场景:有三个List变量,分别为list1、list2、list3 List,Object>> list1 = new ...在sql中就是"select * from list1 inner join list2 on list1.column1=list2.column2 inner join list3 on list1.column3=list
主要介绍了Yii2中多表关联查询(join、joinwith)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
数据库管理与应用 5.3.1使用内连接(INNER JOIN)进行多表查询.pdf 学习资料 复习资料 教学资源
通俗易懂的分析关联查询left,right,inner join
对于SQL中inner join、outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多,如果你使用join连表,缺陷的情况下是inner join,另外,开发中使用的left join和right...
表的数据有:一、内连接-inner jion :最常见的连接查询可能是这样,查出学生的名字和成绩:[sql] view plain copy select s.
left join right join inner join 区别和联系