使用Laravel 實作帶有WHERE IN 子句的子查詢
您請求了一種使用子查詢來執行特定SQL 查詢的方法Laravel 框架中的WHERE IN 子句。讓我們探討如何實現這一點:
Laravel 查詢產生器
Laravel 查詢產生器提供了建構 SQL 查詢的優雅語法。要執行提供的查詢,您可以使用以下程式碼:
$productIds = ProductCategory::whereIn('category_id', ['223', '15'])->pluck('product_id'); $products = Product::where('active', 1)->whereIn('id', $productIds)->get();
基於閉包的子查詢
或者,您可以使用基於閉包的子查詢子查詢:
Products::whereIn('id', function($query){ $query->select('product_id') ->from('product_category') ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
解釋:
效能注意事項:
您指出效能是一個問題,使用子查詢確實適合提高效率。基於閉包的方法稍微複雜一些,但可能會帶來一些效能優勢。
以上是如何在 Laravel 中使用 WHERE IN 高效實現子查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!