Laravel で挿入... ステートメントを選択する
Q: 挿入... を作成するにはどうすればよいですか? LaravelのEloquent ORMまたはクエリを使用したSelectステートメント?次の SQL 構文を変換するのに苦労しています:
<code class="sql">Insert into Demand (Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone) Select Login, Name, ApptTime, Phone, Physician, Location, FormatName, FormatDate, FormatTime, ApptDate, FormatPhone, cellphone from " . [dbname] . " Where " . $where_statement</code>
A: ほとんどのバージョンの Laravel には直接的な 1 クエリのアプローチはありませんが、代わりの方法があります。同様の結果が得られます:
方法 1: 生の SQL とバインド パラメーターを使用する
<code class="php">$select = User::where(...)->where(...)->select(['email', 'moneyOwing']); $bindings = $select->getBindings(); $insertQuery = 'INSERT into user_debt_collection (email, dinero) ' . $select->toSql(); DB::insert($insertQuery, $bindings);</code>
方法 2: insertUsing() を使用する (Laravel) 5.7 以降)
<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
注: これらのメソッドを使用すると、既存の SELECT ステートメントのバインドを再利用し、INSERT ステートメントを個別に実行できます。
以上がLaravel で Insert...Select ステートメントを作成する方法: Eloquent および Query Builder ソリューション?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。