Bagaimanakah saya boleh membuat Sisipan...Pilih pernyataan dalam Laravel dengan cekap?

Mary-Kate Olsen
Lepaskan: 2024-11-02 06:43:02
asal
807 orang telah melayarinya

How can I create Insert...Select statements in Laravel efficiently?

Mencipta Sisipan...Pilih Pernyataan dalam Laravel

Dalam bidang manipulasi pangkalan data, pernyataan Sisipan...Pilih melaksanakan dwi fungsi memasukkan data ke dalam jadual sambil merujuk data dari jadual lain secara serentak. Eloquent ORM dan Query Builder Laravel menawarkan cara yang cekap untuk membina pertanyaan sedemikian.

Penukaran Pertanyaan menggunakan Laravel

Untuk menukar pertanyaan SQL yang disediakan kepada Laravel, kami tidak boleh menggunakan pertanyaan bersatu tunggal kerana pengehadan dalam versi semasa Laravel. Walau bagaimanapun, kita boleh mencapai kefungsian yang diingini dengan membahagikan pertanyaan kepada dua bahagian:

Bahagian 1: Mencipta Pertanyaan Pilih Laravel

Mulakan dengan mencipta pertanyaan Laravel Select menggunakan ORM atau Pembina Pertanyaan yang Fasih. Pertanyaan ini sepatutnya menyerupai bahagian pilihan pertanyaan SQL asal anda:

<code class="php">$select = User::where(...)
->where(...)
->whereIn(...)
->select(['email', 'moneyOwing']);</code>
Salin selepas log masuk

Bahagian 2: Memasukkan Data menggunakan Laravel Query Builder

Sekarang, anda perlu menggunakan Laravel's Query Builder untuk membina bahagian sisipan pertanyaan anda.

<code class="php">$insertQuery = 'INSERT into user_debt_collection (email, dinero) ' . $select->toSql();
\DB::insert($insertQuery, $select->getBindings());</code>
Salin selepas log masuk

Dalam kod di atas, kami secara manual membina pertanyaan sisipan menggunakan $insertQuery dan kemudian gunakan DB::insert () untuk melaksanakan pertanyaan, menyediakannya dengan kedua-dua rentetan pertanyaan dan pengikatan pertanyaan.

Kemas kini untuk Laravel 5.7

Laravel 5.7.17 memperkenalkan Kaedah ->insertUsing(), yang menggabungkan kefungsian pertanyaan pilih dan masukkan ke dalam satu kaedah.

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

Kaedah yang dipermudahkan ini memperkemaskan proses mencipta Sisipan... Pilih pernyataan dalam Laravel.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membuat Sisipan...Pilih pernyataan dalam Laravel dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan