Subkueri dengan Klausa 'WHERE IN' dalam Laravel
Dalam Laravel, mencipta subquery dalam klausa 'WHERE IN' adalah cekap cara untuk menapis hasil berdasarkan data daripada jadual yang berkaitan. Mari kita periksa senario tertentu:
Anda ditugaskan untuk mengambil produk berdasarkan kategorinya. Pertanyaan hendaklah mengandungi lajur seperti ID, nama dan status dan produk hendaklah tergolong dalam kategori tertentu dengan ID '223' atau '15'.
Pertanyaan Asal:
SELECT `p`.`id`, `p`.`name`, `p`.`img`, `p`.`safe_name`, `p`.`sku`, `p`.`productstatusid` FROM `products` p WHERE `p`.`id` IN ( SELECT `product_id` FROM `product_category` WHERE `category_id` IN ('223', '15') ) AND `p`.`active`=1
Penggunaan Setara Laravel Penutupan:
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:
Fungsi 'whereIn' mengambil penutupan sebagai hujah, membolehkan anda mentakrifkan subkueri dalam.
Faedah Penggunaan Penutupan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Subqueries dengan Cekap dengan `WHERE IN` dalam Laravel untuk Menapis Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!