Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mencipta Sisipan...Pilih Pernyataan dengan Laravel: Penyelesaian Pembina Soalan dan Fasih?

Bagaimana untuk Mencipta Sisipan...Pilih Pernyataan dengan Laravel: Penyelesaian Pembina Soalan dan Fasih?

Susan Sarandon
Susan Sarandonasal
2024-11-01 02:20:28325semak imbas

How to Create Insert...Select Statements with Laravel: Eloquent and Query Builder Solutions?

Buat Sisipan... Pilih Pernyataan dalam Laravel

S: Bagaimanakah cara saya mencipta Sisipan... Pilih pernyataan menggunakan ORM Fasih Laravel atau pertanyaan? Saya sedang bergelut untuk menukar sintaks SQL berikut:

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

J: Walaupun tiada pendekatan satu pertanyaan langsung dalam Laravel dalam kebanyakan versi, terdapat kaedah alternatif untuk mencapai hasil yang serupa:

Kaedah 1: Menggunakan SQL Mentah dan Parameter Pengikat

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

Kaedah 2: Menggunakan insertUsing() (Laravel 5.7 dan ke atas)

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

Nota: Kaedah ini membolehkan anda menggunakan semula pengikatan penyata SELECT sedia ada dan laksanakan pernyataan INSERT secara berasingan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Sisipan...Pilih Pernyataan dengan Laravel: Penyelesaian Pembina Soalan dan Fasih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn