Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich Insert...Select-Anweisungen mit 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!