在开发网站的时候,数据库操作是必须,复杂的网站有时要涉及到几张表的同时操作。以下简单讲解一下多表查询和GROUP_CONCAT函数的使用。例如有三张表 jd_role:角色表,jd_role_privilege:角色权限id关联表,jd_privilege:权限表,三张表的结构如下:
1、要求查询每个角色拥有的权限:
使用left join左外连进行连表操作:
此时,就可以查询出每个角色拥有哪些权限,但是这样查询不是很符合实际开发,比如说在修改角色权限的时候,如何把一个角色的权限放入下拉选择框中,这需要把一个角色拥有的所有的权限转换成字符串或者数组,这时候可以使用GROUP_CONCAT函数:
2、以id分组,把权限名称打印成一行,用分号隔开:
3、以id分组,把权限名称打印成一行,去除重复字段:
4、以id分组,把权限名称打印成一行,用逗号隔开,根据权限id排序: