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中文網其他相關文章!