Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich Insert...Select-Anweisungen mit Laravel ORM?

Wie erstelle ich Insert...Select-Anweisungen mit Laravel ORM?

Linda Hamilton
Linda HamiltonOriginal
2024-11-05 05:25:02983Durchsuche

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

Erstellen von Insert...Select-Anweisungen mit Laravel ORM

Das Einfügen von Datensätzen aus einer anderen Tabelle in eine neue Tabelle kann mithilfe eines Inserts erreicht werden. ..Select-Anweisung. In Laravel können Sie entweder das Eloquent ORM oder unformatierte SQL-Abfragen verwenden, um diese Aufgabe zu erfüllen.

Spaltenbindung von Laravel Eloquent

Mit dem Eloquent ORM von Laravel können Sie die Vorteile nutzen der getBindings()-Methode, um die Bindungsparameter für eine zuvor erstellte Select-Abfrage abzurufen. Dadurch können Sie die bereits vorbereitete Anweisung wiederverwenden.

<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>

Verwenden von Raw-SQL-Abfragen

Alternativ können Sie Raw-SQL-Abfragen verwenden, um Insert...Select zu erstellen Anweisungen direkt.

<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 und höher

Für Laravel 5.7 und höher kann die Methode insertUsing() verwendet werden, um den Prozess zu vereinfachen.

<code class="php"><?php

DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>

Das obige ist der detaillierte Inhalt vonWie erstelle ich Insert...Select-Anweisungen mit Laravel ORM?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn