Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengoptimumkan Pertanyaan Laravel Menggunakan Subkueri dalam Klausa WHERE IN?
Subquery dalam Laravel WHERE IN Clause
Dalam Laravel, mencipta pertanyaan yang mendapatkan semula data di mana medan ID disertakan dalam subquery boleh dicapai dengan berkesan. Walaupun operasi JOIN juga mencukupi, artikel ini memfokuskan pada mengoptimumkan prestasi dengan menggunakan subkueri dalam klausa WHERE IN.
Pertimbangkan pertanyaan berikut:
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
Untuk meniru pertanyaan ini dalam Laravel , gunakan kod berikut:
Products::whereIn('id', function($query){ $query->select('paper_type_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
Dengan memasukkan subquery dalam klausa WHERE IN, pernyataan ini cekap melaksanakan operasi carian dan pengambilan semula yang diperlukan. Pendekatan ini amat berfaedah untuk aplikasi sensitif prestasi yang meminimumkan panggilan pangkalan data adalah penting.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Pertanyaan Laravel Menggunakan Subkueri dalam Klausa WHERE IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!