首页 > 解决方案 > 如何在另一个表中用第三列计算两列?

问题描述

这个想法是我有一张桌子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);

标签: laravel

解决方案


加入表格并计算列数。这适用于您只检索计数的列,如果返回不明确的列,连接可能会产生副作用。

$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;

推荐阅读