在laravel

时间:2015-11-03 15:11:37

标签: mysql laravel-5

我已经在这个案例上工作了3天......有人可能会给我一个我想在下面创建的查询报告的解决方案。

我有3张桌子:

applicants
-id
-user_id
-name
-province_id

applications
-id
-user_id
-university_id

provinces
-id
-province_name

我的询问的目标是为大学的每个省提供总申请人数。以下是此查询的表格

list universities table

这是我对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();

这是示例当前查询:

enter image description here

这是我的期望:

enter image description here

请在MySQL或eloquent中提供答案。谢谢!

1 个答案:

答案 0 :(得分:1)

使用' - > leftJoin()'方法?似乎完全有能力从它的外观做你想要的东西:)

http://laravel.com/docs/master/queries#joins