我已经在这个案例上工作了3天......有人可能会给我一个我想在下面创建的查询报告的解决方案。
我有3张桌子:
applicants
-id
-user_id
-name
-province_id
applications
-id
-user_id
-university_id
provinces
-id
-province_name
我的询问的目标是为大学的每个省提供总申请人数。以下是此查询的表格
这是我对MySQL的查询:
select provinces.province_name, count(applicants.id) from provinces left join applicants on provinces.id = applicants.province_id join applications on applications.user_id = applicants.user_id-- where applications.university_id = 1 group by provinces.id;
这是我的口才:
$output = DB::table('provinces')
->select(['provinces.province_name', DB::raw('count(applicants.id) as total'), 'provinces.id'])
->leftJoin('applicants', 'provinces.id','=', 'applicants.province_id' )
->leftJoin('applications', 'applications.user_id','=','applicants.user_id')
->where('university_id',$id)
->groupBy('provinces.id')
->get();
这是示例当前查询:
这是我的期望:
请在MySQL或eloquent中提供答案。谢谢!
答案 0 :(得分:1)
使用' - > leftJoin()'方法?似乎完全有能力从它的外观做你想要的东西:)