关联两个表(权限表特殊)

来源:互联网 发布:sqlserver列明别名 编辑:程序博客网 时间:2024/06/06 08:33
public function lst(){      $role=D('role');      $count = $role->count();// 查询满足要求的总记录数      $Page = new \Think\Page($count,2);// 实例化分页类 传入总记录数和每页显示的记录数(25)      $show = $Page->show();// 分页显示输出      $list = $role->field('a.*,GROUP_CONCAT(b.priname) priname')->alias('a')->join('LEFT JOIN cs_privilege b ON FIND_IN_SET(b.id,a.role_list_id)')->limit($Page->firstRow.','.$Page->listRows)->group('a.id')->select();      $this->assign('list',$list);      $this->assign('page',$show);      $this->display();    }


<td>{$vo.priname}</td>


<td>{$vo.role_list_id}</td>



关联两个表,这个和视图模型不一样。

mysql 语句:

由这几张图应该能了解我的意图,关联

选贼所有从cs_role这个表,起一个名字a,关联cs_privilege这个表起个名字b,

FIND_IN_SET函数是b.id这格字段里面的数,是否在a.role_LIST_ID这个字段里面,关联


但是我们不需要所哟肚饿数据,只需要b.priname这个字段


GROUP_CONCAT函数返回一个字符串结果,该结果由分组中的值连接组合而成

这儿不会写,只能照抄代码



0 0
原创粉丝点击