如何在Laravel中进行子查询where in操作。
如何在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
我也可以使用join来实现,但出于性能考虑,我需要使用这种格式。
admin 更改状态以发布 2023年5月25日
请查看Fluent的高级where子句文档。下面是实现你要达到的效果的一个例子:
DB::table('users') ->whereIn('id', function($query) { $query->select(DB::raw(1)) ->from('orders') ->whereRaw('orders.user_id = users.id'); }) ->get();
这将会输出:
select * from users where id in ( select 1 from orders where orders.user_id = users.id )