Laravel
[Laravel] From Subquery 작성방법
먹세
2022. 12. 13. 12:04
Laravel 5.6 이상부터 fromSub() 사용
DB::query()->fromSub(function($q){
$q->from('table')->groupBy('name');
}, 'a')->select('a.id', 'a.name');
위 쿼리는 아래와 동일한 SQL임
select a.id, a.name from (select * from 'table' group by 'name') as 'a'
또는 아래와 같이 사용 가능
쿼리빌더의 getQuery를 사용하여 작성.
// Users Model 내 작성
public function getUsersListSubQuery()
{
return $this->select('id', 'name')
->leftjoin(...)
->where(...)
->groupBy(...)
}
$usersElo = new UsersEloquent();
$subQuery = $usersElo->getUsersListSubQuery();
$lists = DB::table(DB::raw("({$subQuery->toSql()}) as total"))
->mergeBindings($subQuery->getQuery())
->orderBy('total.id', 'desc')
->get()
위 쿼리도 from 절에 들어가는 sub 쿼리임.
반응형