Laravel 子查询Where In
查询:
您需要在中执行以下查询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 方法允许您指定列的值应与提供的数组中的任何值匹配。在本例中,您想要选择 id 列出现在product_category 表的product_id 列中的所有产品,其中category_id 列是“223”或“15”,并且活动列等于1。
提供的代码使用闭包来定义子查询。在闭包中,您定义一个查询,从product_category 表中检索product_id 列。然后查询根据指定条件过滤结果,最终返回所需的product_id值。
以上是如何在 Laravel 中执行子查询 WHERE IN 子句?的详细内容。更多信息请关注PHP中文网其他相关文章!