MySQL 的 group_concat 函数在咱的 Laravel 里面怎么实现连接查询?
我又来了: 我在数据库里面有这样一段查询语句: SELECT roles.id, roles.name, roles.role_propety, roles.created_at ,group_concat (b.display_name) as name1 from roles LEFT JOIN permission_role as a on a.role_id=roles.id LEFT JOIN permissions as b on a.permission_id=b.id GROUP BY (roles.id)
在我的 Laravel 里面,我是这样写的:
$roles = Role::leftjoin('permission_role as a','a.role_id','=','roles.id')
->leftjoin('permissions as b','a.permission_id','=','b.id')
->select(array('roles.id','roles.name','roles.role_propety','group_concat(b.name
) as name1','roles.created_at'))//'group_concat(b.name
)'
->groupby('a.role_id');
于是报错了。错误内容是:Column not found: 1054 Unknown column 'group_concat (b.name)' in 'field list' (SQL: select roles.id, roles.name, roles.role_propety, group_concat (b.name)asname1,roles.created_atfromrolesleft joinpermission_roleasaona.role_id=roles.idleft joinpermissionsasbona.permission_id=b.idgroup bya.role_idorder byroles.id
asc limit 10 offset 0)
我在数据库里面把错误的 sql,粘贴过去,发现只要把 group_concat 的俩端单引号去掉就可以了。
这个问题怎么解决呢? 我曾经试图在上面的 laravel 查询后面加上 ->group_concat (b.name), 于是提示错误: Call to undefined method Illuminate\Database\Query\Builder::group_concat () 当然把 group_concat 的引号去掉也是一样的错误。
这个,我该怎么解决呢?
推荐文章: