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的引号去掉也是一样的错误。
这个,我该怎么解决呢?
推荐文章: