Einfügung erstellen... Anweisungen in Laravel auswählen
F: Wie erstelle ich eine Einfügung... Anweisung mit Laravel's Eloquent ORM oder Abfragen auswählen? Ich habe Schwierigkeiten, die folgende SQL-Syntax zu konvertieren:
<code class="sql">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</code>
A: Während es in Laravel in den meisten Versionen keinen direkten Ein-Abfrage-Ansatz gibt, gibt es alternative Methoden dazu Erzielen Sie ein ähnliches Ergebnis:
Methode 1:Verwenden von Raw SQL und Bindungsparametern
<code class="php">$select = User::where(...)->where(...)->select(['email', 'moneyOwing']); $bindings = $select->getBindings(); $insertQuery = 'INSERT into user_debt_collection (email, dinero) ' . $select->toSql(); DB::insert($insertQuery, $bindings);</code>
Methode 2:Verwenden von insertUsing() (Laravel 5.7 und höher)
<code class="php">DB::table('user_debt_collection')->insertUsing(['email', 'dinero'], $select);</code>
Hinweis: Mit diesen Methoden können Sie die Bindungen der vorhandenen SELECT-Anweisung wiederverwenden und die INSERT-Anweisung separat ausführen.
Das obige ist der detaillierte Inhalt vonWie erstelle ich Insert...Select-Anweisungen mit Laravel: Eloquent- und Query Builder-Lösungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!