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的引号去掉也是一样的错误。

这个,我该怎么解决呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5
Summer

请学习下 markdown, 看了眼睛痛

9年前 评论
北冥
$cus_voucher = DB::table('cus_voucher')
        ->where('cus_id',$id)
        ->groupBy('vid')
        ->select('vid','valid_period','vname',DB::raw('group_concat(sname,"|",times) as sometitle'))
        ->get();

已成功查询,结果

file

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!