我有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表中不存在。
我的另一个想法是在Transaction查询上做一个回调,并对jobs表中的每个service_id进行查询 - 这看起来好像可以工作,但这似乎是一个漫长的过程。
我的目标输出:
total_value:100
service_id:2
然后我会在服务表中查询服务名称。
答案 0 :(得分:-1)
尝试此查询:
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();