在Laravel 建立Insert...Select 語句
在資料庫操作領域,Insert...Select 語句執行雙重運算向表中插入資料的同時引用另一個表中的資料的功能。 Laravel 強大的 Eloquent ORM 和查詢產生器提供了建立此類查詢的有效方法。
使用 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 中的 Select 語句。
以上是如何在 Laravel 中有效率地建立 Insert...Select 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!