mysql 多表连接查询的一个例子
来源:互联网 发布:90年代流行的网络歌曲 编辑:程序博客网 时间:2024/05/22 12:37
现在有三个表:角色表(shop_role : id , role_name),权限表(shop_privilege : id , pri_name),角色权限表(shop_role_pri : role_id , pri_id),要查询角色所拥有的权限名称。
思路:先查询角色拥有的权限 id(在角色权限表),再通过权限 id 到权限表里直接找其对应的权限名。
sql 语句:
一开始这样写:
select a.*,c.pri_name from shop_role a left join shop_role_privilege b on a.id=b.role_id left join shop_privilege c on b.pri_id=c.id;结果如下:
虽然查询出来了,但是 id 相同的重复行太多,进行分组试试:
select a.*,c.pri_name from shop_role a left join shop_role_privilege b on a.id=b.role_id left join shop_privilege c on b.pri_id=c.id GROUP BY a.id;结果如下:
确实分组了,但是只有一条记录,权限名少了很多,使用 GROUP_CONCAT 关键字连接:
select a.*,GROUP_CONCAT(c.pri_name) from shop_role a left join shop_role_privilege b on a.id=b.role_id left join shop_privilege c on b.pri_id=c.id GROUP BY a.id;结果如下:
结果终于正常了,可以给GROUP_CONCAT(c.pri_name) 加个别名:
select a.*,GROUP_CONCAT(c.pri_name) pri_name from shop_role a left join shop_role_privilege b on a.id=b.role_id left join shop_privilege c on b.pri_id=c.id GROUP BY a.id;结果如下:
好了,大功告成。
阅读全文
0 0
- mysql 多表连接查询的一个例子
- c与mysql连接和一个简单查询的例子
- 一个左连接查询的例子
- 【mysql】关于子查询的一个例子
- 一个jdbc连接mysql的小例子
- 一个C++连接MYSQL数据库的例子
- LINQ to Object的一个例子 连接查询
- 使用jdbc连接ORACLE数据库进行查询的一个例子
- 区别mysql的多表查询和连接查询
- 从一个MysqL的例子来学习查询语句
- 从一个MysqL的例子来学习查询语句
- php mysql 一个查询优化的简单例子
- 一个多条件查询的例子
- 一个跨表查询的例子
- JSP连接MySQL数据库例子(查询)
- mysql多表左连接查询例子参考
- mysql 多表连接查询
- MySQL 多表连接查询
- 使用rbenv进行Ruby on Rails 环境搭建@CentOS 7-2-Ruby on Rails测试
- 旧项目改名 然后pod install之后 。。。library not found for -lPods-项目名
- Linux查找命令详解
- Linux 命令
- eclipse Maven项目发布到Tomcat下classes文件夹却没有子模块的编译类
- mysql 多表连接查询的一个例子
- js加载顺序
- (转)HTTP协议简介
- 浏览器hack总结 详细的浏览器兼容性解决方法
- Java9之Jshell入门
- IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍
- python 基础知识快速入门
- 3DOP -- 源代码结构
- LDA原理(2)知识储备之贝叶斯派和概率派