Laravel で Insert...Select を使用してデータを挿入する
Insert... を使用してあるテーブルから別のテーブルにデータを挿入するにはLaravel の Select ステートメントでは、次のアプローチを利用できます:
Laravel の Eloquent ORM またはクエリは Insert...Select ステートメントを直接サポートしていませんが、基礎となるデータベース接続を利用して目的の結果を達成できます。
<code class="php">/* Obtain the original select query and its bindings */ $select = User::where(...) ->where(...) ->whereIn(...) ->select(['email', 'moneyOwing']); $bindings = $select->getBindings(); /* Construct the insert query */ $insertQuery = 'INSERT INTO user_debt_collection (email, dinero) ' . $select->toSql(); /* Execute the insert query using the bindings */ \DB::insert($insertQuery, $bindings);</code>
Laravel 5.7 アップデート:
Laravel 5.7.17 以降では、insertUsing() メソッドを使用して同様の結果を達成することもできます:
<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
以上がLaravelで挿入...選択を使用してあるテーブルから別のテーブルにデータを挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。