首頁 >後端開發 >php教程 >如何在 WHERE IN 子句中使用子查詢來最佳化 Laravel 查詢?

如何在 WHERE IN 子句中使用子查詢來最佳化 Laravel 查詢?

Barbara Streisand
Barbara Streisand原創
2024-12-09 13:46:18714瀏覽

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

Laravel 中的子查詢WHERE IN 子句

在Laravel 中,建立一個檢索子查詢中包含ID 欄位的資料的查詢可以是有效地實現了。雖然 JOIN 操作也足夠了,但本文重點關注透過在 WHERE IN 子句中使用子查詢來優化效能。

考慮以下查詢:

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

在Laravel 複製此查詢,利用以下程式碼:

Products::whereIn('id', function($query){
    $query->select('paper_type_id')
    ->from(with(new ProductCategory)->getTable())
    ->whereIn('category_id', ['223', '15'])
    ->where('active', 1);
})
->get();

透過在WHERE IN 子句中合併子查詢,此語句有效地執行所需的搜尋和檢索操作。這種方法對於效能敏感的應用程式特別有益,其中最小化資料庫呼叫至關重要。

以上是如何在 WHERE IN 子句中使用子查詢來最佳化 Laravel 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn