关于groupBy和selectRaw的问题。

本人sql一般,现在遇到个问题请教下路过的大佬。
业务场景:用户下单后,不同的维修人员每天接N单,然后每天定时脚本查询订单给维修人员结算。
脚本内容:
Order::with(“worker)
->whereHas(“worker”, funtion($query)
{$query->groupBy(“workerId”)})
->selectRaw(“sum(fix_fee) as income”);
大概的订单查询分组代码如上:
遇到问题:查询完结果后,给骑手创建一个账单,
但是查询结果并没有关联的worker数据,无法给对应的维修人员创建账单。而只是有selectRaw查询的income字段。希望路过的大佬给与指点

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

楼主,做这个赚钱不?

3年前 评论
赌赌赌赌赌赌赌圣! (作者) 3年前
赌赌赌赌赌赌赌圣! (作者) 3年前
osang (楼主) 3年前
赌赌赌赌赌赌赌圣! (作者) 3年前
osang (楼主) 3年前
osang (楼主) 3年前
讨论数量: 5

咨询个问题,现在有用户下单后,你们是怎么推送给维修人员呢???还是说维修人员自己去抢单????

3年前 评论
osang (楼主) 3年前
sunny123456 (作者) 3年前

再把workerid查出来不就行了

selectRaw('workerid, sum(fix_fee) as income');
3年前 评论
osang (楼主) 3年前
北冥
    $res = nutrition::with(['user' => function ($query) {
       // $query->groupBy(“workerId”); 条件写这里试试
        $query->select('id','name','idCard');
    }])->whereIn('user_id',$user_ids)->orderBy('user_id')->get();
3年前 评论

楼主,做这个赚钱不?

3年前 评论
赌赌赌赌赌赌赌圣! (作者) 3年前
赌赌赌赌赌赌赌圣! (作者) 3年前
osang (楼主) 3年前
赌赌赌赌赌赌赌圣! (作者) 3年前
osang (楼主) 3年前
osang (楼主) 3年前

这个语句好乱,因为你的查询语句里面没有查workerId,所以无法关联上工人信息,这样试试呢

Order::with('worker')
->select('workerId')
->selectRaw("sum(`fix_fee`) as income");
->whereHas('worker')
->groupBy('workerId');
3年前 评论
osang (楼主) 3年前

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