laravel - 如何在另一个表中用第三列计算两列?
问题描述
这个想法是我有一张桌子events
:
该列Mark_id
与另一个名为 的表有关系 mark_events
:
模型事件中的关系:
public function markevent()
{
return $this->belongsTo('App\MarkEvent', 'mark_id', 'id');
}
我需要的是count
这些列(status
, diabetes
, number_mark_event
)并将这些数字的总数保存在 sum
列中
控制器代码:
$form = [
'mark_id' => $request->mark_id,
'status' => $z,
'diabetes' => $request->diabetes,
];
$event = Event::update($form);
解决方案
加入表格并计算列数。这适用于您只检索计数的列,如果返回不明确的列,连接可能会产生副作用。
$eventCounts = Event::leftJoin('mark_events', 'events.mark_id', '=', 'mark_events.id')
->select(DB::raw('count(status) as status_count'), DB::raw('count(diabetes) as diabetes_count'), DB::raw('cout(number_mark_event) as number_mark_event_count'))
->get();
$eventCounts->status_count;
$eventCounts->diabetes _count;
$eventCounts->number_mark_event_count;