Laravel 中帶有'WHERE IN' 子句的子查詢
在Laravel 中,在'WHERE IN' 子句中創建子查詢是一種高效率的方式根據相關表中的資料過濾結果的方法。讓我們來看一個特定的場景:
您的任務是根據類別來取得產品。查詢應包含 ID、名稱和狀態等列,且產品應屬於 ID 為「223」或「15」的特定類別。
原始查詢:
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();
解釋:
whereIn() 和where(): 根據指定的條件過濾子查詢的結果
以上是如何在 Laravel 中有效地使用帶有'WHERE IN”的子查詢來過濾資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!