[英]Laravel Eloquent Group By Relation Sum()
我有3个型号
我的关系如下:
交易模式:
public function job() {
return $this->belongsTo('App\Job');
}
工作模式:
public function service() {
return $this->belongsTo('App\Service');
}
我正在尝试查询交易表并汇总总值和按服务分组。
我最初的想法是查询事务:
Transaction::with('job')->groupBy('job.service_id');
这不起作用,因为job.service_id在事务表中不存在。
我的另一个想法是对Transaction查询进行回调,并对作业表中的每个service_id进行查询-这似乎可以工作,但过程似乎很漫长。
我的目标输出:
总计值:100
service_id:2
然后,我将在服务表中查询服务名称。
试试这个查询:
Transaction::join('jobs', 'jobs.id', 'transactions.job_id')
->join('services', 'services.id', 'jobs.service_id')
->select('services.id', \DB::raw('sum(transaction.value)')
->groupBy('services.id')
->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.