为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Laravel,子查询中进行此操作

如何在Laravel,子查询中进行此操作

PHP
慕沐林林 2019-09-02 08:49:59
如何在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我也可以通过连接来做到这一点,但我需要这种格式来提高性能。
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

考虑以下代码:


Products::whereIn('id', function($query){

    $query->select('paper_type_id')

    ->from(with(new ProductCategory)->getTable())

    ->whereIn('category_id', ['223', '15'])

    ->where('active', 1);

})->get();


查看完整回答
反对 回复 2019-09-02
?
不负相思意

TA贡献1777条经验 获得超10个赞

您可以使用关键字“use($ category_id)”来使用变量


$category_id = array('223','15');

Products::whereIn('id', function($query) use ($category_id){

   $query->select('paper_type_id')

     ->from(with(new ProductCategory)->getTable())

     ->whereIn('category_id', $category_id )

     ->where('active', 1);

})->get();


查看完整回答
反对 回复 2019-09-02
  • 3 回答
  • 0 关注
  • 1924 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信