繁体   English   中英

Laravel雄辩的按关系求和()

[英]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进行查询-这似乎可以工作,但过程似乎很漫长。

我的目标输出:

  • service_id:1
  • 总计值:100

  • service_id:2

  • 总计值:300

然后,我将在服务表中查询服务名称。

试试这个查询:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM