我有表名、应用程序和状态。表如下:
表:应用程序:
<表类>
id
status_id
is_active
tbody><<tr>1 1 对 21 真正 3 1 对 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
,因为这不是一个不可变对象