Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Data Produk dengan Cekap dalam Laravel Menggunakan Subkueri dalam `WHERE IN`?

Bagaimana untuk Mendapatkan Data Produk dengan Cekap dalam Laravel Menggunakan Subkueri dalam `WHERE IN`?

Barbara Streisand
Barbara Streisandasal
2024-12-09 13:49:11816semak imbas

How to Efficiently Retrieve Product Data in Laravel Using a Subquery in `WHERE IN`?

Laravel Subquery WHERE IN:

Anda sedang mencari cara berprestasi untuk mendapatkan semula data produk daripada jadual produk dalam Laravel, menggunakan subquery untuk menentukan nilai product_id untuk disertakan. Walaupun alternatif gabungan wujud, anda lebih suka pendekatan berasaskan subkueri untuk tujuan pengoptimuman.

Penyelesaian:

Di bawah ialah kod yang memenuhi keperluan anda, memanfaatkan subkueri dalam whereIn klausa:

Products::whereIn('id', function($query){
    $query->select('paper_type_id')
        ->from(with(new ProductCategory)->getTable())
        ->whereIn('category_id', ['223', '15'])
        ->where('active', 1);
})
->get();

Penjelasan:

  • Pertanyaan bermula dengan pangkalan model Produk, yang mewakili jadual sasaran yang kami ingin dapatkan semula data.
  • Klausa whereIn digunakan, menyatakan lajur id bagi jadual produk
    sebagai lajur kepada menilai.
  • Penutupan bersarang digunakan untuk menentukan subkueri. Dalam penutupan ini, kami memilih paper_type_id daripada jadual sementara yang dibuat menggunakan with(new ProductCategory)->getTable().
  • Subquery kemudiannya menggunakan penapis yang diperlukan, termasuk whereIn('category_id', ['223 ', '15']) untuk menyekat keputusan kepada kategori tertentu dan di mana('aktif', 1) untuk memasukkan hanya aktif produk.
  • Akhir sekali, keseluruhan pertanyaan dilaksanakan menggunakan get(), mendapatkan semula data produk yang diingini dengan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data Produk dengan Cekap dalam Laravel Menggunakan Subkueri dalam `WHERE IN`?. 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