首頁 >資料庫 >mysql教程 >如何在 Laravel 中使用「WHERE IN」中的子查詢高效檢索產品資料?

如何在 Laravel 中使用「WHERE IN」中的子查詢高效檢索產品資料?

Barbara Streisand
Barbara Streisand原創
2024-12-09 13:49:11816瀏覽

How to Efficiently Retrieve Product Data in Laravel Using a Subquery in `WHERE IN`?

Laravel 子查詢WHERE IN:

您正在尋找一種使用子查詢從Laravel 中的產品表中檢索產品資料的高效能方法指定要包含的product_id 值。雖然存在連接替代方案,但出於最佳化目的,您更喜歡基於子查詢的方法。

解決方案:

以下是滿足您的要求的程式碼,利用其中子句:

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

解釋:

  • 解釋:

  • 查詢以Products模型庫開始,它表示我們要從中檢索資料的目標表。
  • 使用whereIn子句,指定
  • products表的id列作為要查詢的列評估。
  • 使用巢狀閉包來定義子查詢。在此閉包中,我們從使用 with(new ProductCategory)->getTable() 建立的臨時表中選擇 paper_type_id。
然後子查詢套用必要的篩選器,包括whereIn('category_id', ['223 ', '15']) 將結果限制為特定類別,where('active', 1) 僅包含活動products。 最後使用get()執行整個查詢,高效檢索所需的產品資料。

以上是如何在 Laravel 中使用「WHERE IN」中的子查詢高效檢索產品資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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