Menggunakan Laravel untuk Melaksanakan Subkueri dengan Klausa WHERE IN
Anda telah meminta kaedah untuk melaksanakan pertanyaan SQL tertentu yang menggunakan subkueri dengan klausa WHERE IN dalam rangka kerja Laravel. Mari kita terokai cara untuk mencapai ini:
Pembina Pertanyaan Laravel
Pembina Pertanyaan Laravel menyediakan sintaks yang elegan untuk membina pertanyaan SQL. Untuk melaksanakan pertanyaan yang disediakan, anda boleh menggunakan kod berikut:
$productIds = ProductCategory::whereIn('category_id', ['223', '15'])->pluck('product_id'); $products = Product::where('active', 1)->whereIn('id', $productIds)->get();
Subquery Berasaskan Penutupan
Sebagai alternatif, anda boleh menggunakan berasaskan penutupan subquery:
Products::whereIn('id', function($query){ $query->select('product_id') ->from('product_category') ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
Penjelasan:
Pertimbangan Prestasi:
Anda menunjukkan bahawa prestasi membimbangkan dan menggunakan subkueri sememangnya sesuai untuk kecekapan. Kaedah berasaskan penutupan adalah lebih kompleks sedikit tetapi mungkin menawarkan beberapa faedah prestasi.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Subquery dengan Cekap dengan WHERE IN dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!