Apabila menggunakan Eloquent ORM dan pembina pertanyaan Laravel, anda mungkin menghadapi senario di mana anda perlu mendapatkan semula data berdasarkan subkueri. Soalan ini meneroka cara menggunakan pembina pertanyaan Laravel dengan cekap untuk memilih data daripada subkueri.
Seperti yang dinyatakan dalam contoh kod yang disediakan, pendekatan awal ialah menggunakan berbilang pembina pertanyaan untuk mencipta dan melaksanakan subkueri. Walau bagaimanapun, pengguna mencari penyelesaian yang lebih mudah dan berkesan.
Penyelesaian terbaik bukanlah menggunakan berbilang pembina pertanyaan berantai, tetapi menggunakan pernyataan SQL mentah dalam klausa FROM
. Ini membolehkan anda menyatakan subkueri terus dalam pertanyaan Laravel:
<code class="language-php">$sql = Abc::where(...)->groupBy(...)->toSql(); $num = DB::table(DB::raw("($sql) AS sub"))->count(); print $num;</code>
Walaupun penyelesaian ini memilih data secara berkesan daripada subkueri, adalah penting untuk mempertimbangkan perkara berikut:
Penyelesaian yang dipertingkatkan menyediakan cara yang lebih mudah dan cekap untuk memilih data daripada subkueri menggunakan pembina pertanyaan Laravel. Dengan memasukkan SQL mentah dalam fasal FROM
dan mengendalikan penjilidan pertanyaan dengan berhati-hati, anda boleh mencapai pengambilan data yang diingini dengan ringkas dan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Data dengan Cekap daripada Subkueri Menggunakan Pembina Pertanyaan Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!