>데이터 베이스 >MySQL 튜토리얼 >Laravel에서 Insert...Select 문을 효율적으로 생성하려면 어떻게 해야 합니까?

Laravel에서 Insert...Select 문을 효율적으로 생성하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 06:43:02867검색

How can I create Insert...Select statements in Laravel efficiently?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.