> 데이터 베이스 > MySQL 튜토리얼 > Laravel의 쿼리 빌더를 사용하여 하위 쿼리에서 효율적으로 선택하는 방법은 무엇입니까?

Laravel의 쿼리 빌더를 사용하여 하위 쿼리에서 효율적으로 선택하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-12 07:08:43
원래의
274명이 탐색했습니다.

How to Efficiently Select from Subqueries Using Laravel's Query Builder?

Laravel 쿼리 빌더를 사용하여 하위 쿼리에서 데이터 선택

질문: Eloquent ORM을 사용하여 SQL 하위 쿼리에서 집계 값을 검색합니다.

초기 방법:

<code class="language-php">$sql = Abc::from('abc AS a')
    ->groupBy('col1')
    ->toSql();

$num = Abc::from(\DB::raw($sql))
    ->count();</code>
로그인 후 복사

이 접근 방식을 사용하려면 하위 쿼리 SQL을 수동으로 생성해야 하는데 이는 이상적이지 않습니다.

최상의 솔루션:

현재 Laravel 쿼리 빌더에는 FROM 절에 하위 쿼리를 생성하는 전용 방법이 없습니다. 원시 문은 적절한 바인딩 관리와 함께 수동으로 사용해야 합니다.

<code class="language-php">// 定义子查询
$sub = Abc::where(...)->groupBy(...); // Eloquent Builder 实例

// 创建主查询
$count = DB::table(DB::raw("({$sub->toSql()}) AS sub"))
    ->mergeBindings($sub->getQuery()) // 正确合并绑定
    ->count();</code>
로그인 후 복사

참고: 바인딩은 올바른 순서로 병합되어야 합니다. 병합 후 추가 조건이 추가되면 올바른 바인딩을 보장하기 위해 순서를 조정해야 합니다.

위 내용은 Laravel의 쿼리 빌더를 사용하여 하위 쿼리에서 효율적으로 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿