前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql视图,ThinkPHP视图

mysql视图,ThinkPHP视图

作者头像
简单、
发布2018-07-18 15:10:51
3.6K0
发布2018-07-18 15:10:51
举报

MySQL的视图语句,就拿一个实例讲。我想把 role表和privilege表拼接。下面是我两张数据表的视图。

请输入图片描述
请输入图片描述
SELECT a.* ,GROUP_CONCAT(b.pri_name) FROM 前缀(没有就不加)_role a LEFT JOIN 前缀(没有就不加)_privilege b ON FIND_IN_SET(b.id,a.par_id_list) GROUP BY a.id;
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
SELECT a.* b.pri_name FROM role a LEFT JOIN privilege b ON FIND_IN_SET(b.id,a.par_id_list) GROUP BY a.id;
//将a表所有字段列出,b表的pri_name字段,给他们分组到a.id下面。
请输入图片描述
请输入图片描述
SELECT a.* GROUP_CONCAT(b.pri_name) FROM role a LEFT JOIN privilege b ON FIND_IN_SET(b.id,a.par_id_list) GROUP BY a.id;
//将b.表pri_name字段全部显示出来。
请输入图片描述
请输入图片描述
ThinkPHP 的视图方法。上图是有问题的join-> 是错的,正确的应该是 join()->,写的时候粗心了。

正确的语句:

 $list = $role->field('a.*,GROUP_CONCAT(b.pri_name) pri_name')->alias('a')->join('LEFT JOIN car_privilege b ON FIND_IN_SET(b.id,a.par_id_list)')->limit($Page->firstRow.','.$Page->listRows)->group('a.id')->select();

Tags: None

Archives QR Code

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档