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
Lepaskan: 2024-12-09 13:46:18
asal
723 orang telah melayarinya

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
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan