Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengoptimumkan Pertanyaan Laravel Menggunakan Subkueri dalam Klausa WHERE IN?

Bagaimana untuk Mengoptimumkan Pertanyaan Laravel Menggunakan Subkueri dalam Klausa WHERE IN?

Barbara Streisand
Barbara Streisandasal
2024-12-09 13:46:18714semak imbas

How to Optimize Laravel Queries Using Subqueries in WHERE IN Clauses?

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!

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