집 >데이터 베이스 >MySQL 튜토리얼 >Laravel에서 Insert...Select 문을 효율적으로 생성하려면 어떻게 해야 합니까?
Laravel에서 Insert...Select 문 만들기
데이터베이스 조작 영역에서 Insert...Select 문은 이중 작업을 수행합니다. 다른 테이블의 데이터를 동시에 참조하면서 테이블에 데이터를 삽입하는 기능입니다. Laravel의 강력한 Eloquent ORM 및 Query Builder는 이러한 쿼리를 구성하는 효율적인 방법을 제공합니다.
Laravel을 사용한 쿼리 변환
제공된 SQL 쿼리를 Laravel로 변환하려면 현재 버전의 Laravel의 제한으로 인해 단일 통합 쿼리가 제공되지 않습니다. 그러나 쿼리를 두 부분으로 분할하면 원하는 기능을 얻을 수 있습니다.
파트 1: Laravel Select 쿼리 생성
다음을 사용하여 Laravel Select 쿼리를 생성하여 시작합니다. Eloquent ORM 또는 쿼리 빌더. 이 쿼리는 원래 SQL 쿼리의 선택 부분과 유사해야 합니다.
<code class="php">$select = User::where(...) ->where(...) ->whereIn(...) ->select(['email', 'moneyOwing']);</code>
파트 2: Laravel 쿼리 빌더를 사용하여 데이터 삽입
이제 Laravel의 쿼리 빌더를 사용하여 쿼리 삽입 부분을 구성합니다.
<code class="php">$insertQuery = 'INSERT into user_debt_collection (email, dinero) ' . $select->toSql(); \DB::insert($insertQuery, $select->getBindings());</code>
위 코드에서는 $insertQuery를 사용하여 삽입 쿼리를 수동으로 구성한 다음 DB::insert를 활용합니다. () 쿼리 문자열과 쿼리 바인딩을 모두 제공하여 쿼리를 실행합니다.
Laravel 5.7 업데이트
Laravel 5.7.17에서는 ->insertUsing() 메서드는 선택 쿼리와 삽입 쿼리의 기능을 단일 메서드로 결합합니다.
<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
이 단순화된 메서드는 삽입 생성 프로세스를 간소화합니다... Laravel에서 명령문을 선택하세요.
위 내용은 Laravel에서 Insert...Select 문을 효율적으로 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!