Laravel 5.2使用sum()更快地优化制作leftjoin

时间:2016-04-11 05:28:41

标签: laravel laravel-5.2

我有5个表与自定义字段相关,字符串不是id。

我希望获得与我想要查询的表相关的每个表的数量总和。

  

我设法使用leftjoin使其工作,但至少需要10秒   给出结果。

我想优化我的查询。

$raohs = Raoh::leftjoin('func','raoh.FFUNCCOD','=','func.FFUNCCOD')
            ->leftjoin('appd','raoh.FRAOCOD','=','appd.FRAOCOD')
            ->leftjoin('altd','raoh.FRAOCOD','=','altd.FRAOCOD')
            ->leftjoin('obrd','raoh.FRAOCOD','=','obrd.FRAOCOD')
            ->where(function($query) {
                $search = \Request::get('search');
                $query->where('fraodesc', 'like', '%' . $search . '%')
                    ->orWhere('fsourcod', 'like', '%' . $search . '%');
            })
            ->where('func.FFUNCCOD', 'like', '%' . trim($ffunccod) . '%')
            ->select(\DB::raw('fraodesc,fsourcod,raoh.ffunccod,raoh.FRAOCOD,func.ffunction,sum(appd.FAMOUNT) AS fapprop, sum(altd.FAMOUNT) AS fallot, sum(obrd.FAMOUNT) AS foblig'))
            ->orderBy('ffunction')
            ->groupBy('raoh.FRAOCOD')
            ->paginate(20);

0 个答案:

没有答案