使用 Laravel ORM 创建 Insert...Select 语句
可以使用 Insert 来将另一个表中的记录插入到新表中。 ..选择语句。在 Laravel 中,您可以利用 Eloquent ORM 或原始 SQL 查询来完成此任务。
Laravel Eloquent 的列绑定
使用 Laravel 的 Eloquent ORM,您可以利用使用 getBindings() 方法来获取先前构造的 Select 查询的绑定参数。这允许您重用已经准备好的语句。
<code class="php"><?php // Create the Select query $select = User::where(...) ->where(...) ->whereIn(...) ->select(['email', 'moneyOwing']); // Get the binding parameters $bindings = $select->getBindings(); // Construct the Insert query $insertQuery = 'INSERT INTO user_debt_collection (email, dinero) ' . $select->toSql(); // Execute the Insert query using the bound parameters DB::insert($insertQuery, $bindings);</code>
使用原始 SQL 查询
或者,您可以使用原始 SQL 查询来创建 Insert...Select
<code class="php"><?php $insertQuery = '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; DB::insert($insertQuery);
Laravel 5.7 及更高版本
对于 Laravel 5.7 及更高版本,可以使用 insertUsing() 方法来简化过程。
<code class="php"><?php DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
以上是如何使用 Laravel ORM 创建 Insert...Select 语句?的详细内容。更多信息请关注PHP中文网其他相关文章!