使用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的用户所具有的权限资源列表,如下图:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven学习记录之maven基本操作命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse中创建maven工程:...

摘要:今天又学习了一下maven,之前是下载并安装和配置好了maven的环境,今天主要学习的内容包括:maven本地工厂的创建,maven骨架的生成命令,maven在dos下创建maven工程,以及在eclipse中创建mavne工…

Oracle中通过游标执行带参数的存储过程实现解析CLOB字段内的xml字符串:

摘要:近来之前的项目数据出现了问题,原因是由于之前在设计数据库的时候把时间字段设置成了字符串格式,所以给后期的数据操作带来了很大的麻烦,这里提醒一下各位程序猿,以后在开发项目的时候时间字段一定要是时间字段&a…

Eclipse中使用Checkstyle,checkstyle插件检查java代码的自定义配置文件:

摘要:近来项目组在搞代码检查,所以领导让把checkstyle这个插件搞明白,现在我把我们写的自定义的checkstyle.xml文件记录一下,以便大家可以一起使用: 一:要使用checkstyle插件在eclipse中检查java代码&…

Linux 下安装 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步骤:

摘要:近来又用到了Linux系统,所以就又新装了一个虚拟机和CentOS 6.4来用,搞开发的程序猿们可能都知道,在现在的很多企业中,生产环境大多都是Linux服务器,并且用的比较多的大都是CentOS,Red hat系…

Win7+VMware10.0+CentOS 6.4+Tomcat,Win7访问不了CentOS6.4上的Tomcat

摘要:今天在linux下安装Tomcat后,在虚拟机本地通过:http://localhost:8080/可以访问安装好的Tomcat服务器,但是在本机就不能访问,前提是在本机下可以ping的通虚拟机的IP地址的,最后经过Google,发现说可能是…

Linux下配置OpenLDAP服务记录

摘要:最近部门需要整合所有的系统,所以领导说要通过OpenLdap数据库来实现对所有系统的统一管理,所以需要在服务器上配置一下LDAP服务,我们这里选择的是OpenLdap服务,我在网上搜索了很多,开始都没有配置成功…

Linux下配置CollabNet Subversion Edge

摘要:最近一直都在搞一下管理员的工作,今天又搞了svn的管理工具CollabNetSubversionEdge,网上也有很多例子,但是很多都是可以访问到web界面,但是不能启动版本库的服务,所以我经过多次尝试,终于解…

养成让自己进步的10个习惯

养成让自己进步的10个习惯 1.永远不说不可能。"办法总比问题多" 2.凡事第一反应找方法,不是找借口。"不要推卸责任" 3.养成记录习惯,不太依赖脑袋。"好记性不如烂笔头" 4.每天出门照镜子,给自己自信的微笑。&…

Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串:

摘要:之前在项目中使用到了Oracle数据库中通过触发器去调用存储过程执行数据解析并Update到对应的数据表中,但是,经过一段时间的测试使用发现,如果job那天停掉了,然后你再重新新建job的话,这时候可能会有很…

Maven配置nexus

摘要:近来一直在搭建maven结构的开发框架,其中这个过程中用到了nexus私服,这里我把我经过查询总结的最终的方式记录一下,以便后面忘记了: 一:nexus私服的安装(略) 二:仓库的讲解如下图: 1、ho…

Maven项目发布的配置

摘要:要想发布maven结构的项目到nexus私服上,可以通过两种方式来,一种是在项目的pom.xml文件里面配置,另一种是通过命令的方式发布到nexus私服上,但是这种方式的前提也得在settings.xml文件配置用户: 一:M…

MariaDB通过命令行的方式导出指定数据库和还原指定数据库

摘要:今天由于需要需要从本地导出一份VP系统的数据库脚本,以前我都是通过工具直接导出,现在有同事说可以通过mysql的命令方式导出,我试了一下,可以,现在记录一下! 一:在MariaDB的安装…

java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

一:如果出现下面的错误信息,如果你的项目是Maven结构的,那么一般都是你的项目的Maven Dependencies没有添加到项目的编译路径下: 五月 10, 2015 6:23:18 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR …

Maven 打成 Webjar的方法

摘要:今天领导说要把自己定义的样式文件和js文件打成一个自定义的webjar,所以就写了一下,现在记录一下: 1. 先把要打包成webjar的文件放到你新建的maven结构的项目的/src/main/resources目录下 2.编写该项目的pom.xml文件&#…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要:今天领导说要把项目通过maven生产源码包和文档包并发布到自己的私服上,经过查看mavne官网发现有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plugin,现在记录一下&#xff0…

Maven之生成测试覆盖度的插件cobertura-maven-plugin的使用

摘要:Maven中可以通过使用插件检查一个项目的测试代码的覆盖度,这个插件就是cobertura-maven-plugin,这个插件如何使用我做了测试,现在记录一下! 一:首先在你的项目的pom.xml文件中增加该插件的配置&#x…

Linux下开启mysql数据库的远程访问权限

摘要:今天在Linux服务器上安装了msyql数据库,在本地访问的时候可以访问,但是我想通过远程的方式访问的时候就不能访问了,查询资料后发现,Linux下mysql默认安装完成后只有本地访问的权限,没有远程访问的权限…

Maven之自定义pom类型的基础项目

摘要:在当前的软件开发场景中,大都是通过maven管理项目,而如果使用maven的话,其实也会有很多问题,比如项目中依赖的版本管理就是一个很头疼的事,如果一个项目中有很多人同时开发那么这就很可能造成大家添加…

Maven之搭建本地私服(nexus)仓库

摘要:现在越来越多的项目都在使用Maven管理项目,尤其是在大型的项目团队中使用Maven能带来更加多的好处,私服的好处我相信大家都明白,在这里我就不多说了,它最重要的作用就是可以让项目团队成员更加方便的下载对应的项…

项目管理4321方法论

文章目录 一、项目立项准备(4步)case1、识别价值---解决背后痛点的才是价值,价值是做任何事情的出发点case2、明确目标---支撑价值实现的,目标是 具体/可衡量/可达到/相关性/有时限的case3、识别干系人---找对人才能做对事&#x…