ホームページ >データベース >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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。