Laravel关联表分组后如何统计output_kg字段总和?
解决方法
- 若需按
productionActivity的字段分组,同时对关联的productionOutput表中output_kg求和,可通过join结合groupBy实现:
$results = ProductionActivity::join('production_outputs', 'production_activities.id', '=', 'production_outputs.production_activity_id') ->groupBy('production_activities.id') // 按生产活动ID分组,可根据需求替换为其他分组字段 ->selectRaw('production_activities.*, SUM(production_outputs.output_kg) as total_output_kg') ->get();
- 若想保留Eloquent关联的查询方式,也可使用子查询求和:
$sumSubquery = ProductionOutput::selectRaw('SUM(output_kg)') ->whereColumn('production_activity_id', 'production_activities.id') ->groupBy('production_activity_id'); $results = ProductionActivity::select('*') ->selectSub($sumSubquery, 'total_output_kg') ->get();
内容的提问来源于stack exchange,提问作者Hakim A
相关产品推荐
相关产品推荐

