Laravel Count与表中不同的值



我有表名、应用程序和状态。表如下:

表:应用程序:

<表类> id status_id is_active tbody><<tr>11对21真正31对42真正52对

你可以这样做:

Status::select(DB::raw('status.id, status.desc, COUNT(*) AS count'))
->join('applications', 'status.id', '=', 'applications.status_id')
->groupBy('status.id')->get();

或者这样:

DB::table('applications')->select(DB::raw('status.id, status.desc, COUNT(*) AS count'))
->join('status', 'status.id', '=', 'applications.status_id')
->groupBy('status.id')->get();

您可以有一个基本查询,然后只应用变化的内容,这样您就不会每次都重复相同的代码:

$query = Application::select('*')
->where('is_active', 'true');
$total = $query->clone()->count();
$complete = $query->clone()->where('application_sts', 1)->count();

请注意,您必须克隆$query,因为这不是一个不可变对象

最新更新