Laravel サブクエリ Where In
Query:
で次のクエリを実行する必要がありますLaravel:
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 メソッドでは、列の値が、提供された配列内の任意の値と一致するように指定できます。この場合、product_category テーブルの product_id 列に id 列が存在するすべての製品を選択します。ここで、category_id 列は '223' または '15' で、アクティブな列は 1 に等しいです。
提供されたコードはクロージャを使用してサブクエリを定義します。クロージャ内で、product_category テーブルから product_id 列を取得するクエリを定義します。次に、クエリは指定された条件に基づいて結果をフィルターし、最終的に目的の product_id 値を返します。
以上がLaravelでサブクエリWHERE IN句を実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。