首页 >数据库 >mysql教程 >如何使用 Laravel ORM 创建 Insert...Select 语句?

如何使用 Laravel ORM 创建 Insert...Select 语句?

Linda Hamilton
Linda Hamilton原创
2024-11-05 05:25:02984浏览

How to Create Insert...Select Statements with Laravel ORM?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn