thinkphp 多表连接 子查询 group by 分组以最新的一条数据为组

用这个

        $subQuery = Db::name('wms_orderitems')
            ->distinct(true)
            ->field('kw_id,orders_id,product_id')
            ->order('items_id desc')
            ->buildSql();


        $list = Db::name('wms_orders')->alias('order')
            ->join($subQuery.' item','item.orders_id=order.orders_id')
            ->field('order.dd_date,item.kw_id,item.product_id')
            ->group('item.kw_id')
                ->order('item.kw_id')
//                ->fetchSql(true)
            ->select()->toArray();

在这里插入图片描述

下面的可以参考


        $subQuery = Db::name('purchase_order_line')
            ->distinct(true)
            ->order('purchase_order_line_id desc')
            ->buildSql();

        $re = Db::name('purchase_order')
            ->alias('a')
            ->field([
                'a.company_id',
                'a.purchase_order_id',
                'b.price',
                'b.unit_cost',
                'b.product_id',
                'b.purchase_order_line_id',
                'ifnull(sum(ff.purchase_quantity),0) as ruku_sum',
                'ifnull(sum(f.purchase_quantity),0) as tuihuo_sum'
            ])
            ->join($subQuery.' b','a.purchase_order_id=b.purchase_order_id')
            ->whereTime('a.create_date','>',strtotime('-15 day'))
//            ->where(['a.status'=>4,'a.order_type_id'=>1])
            ->where('a.order_type_id', 1)
            ->where(function ($query) {
                $query->where('a.status', 4);
//                    ->whereOr('a.is_wms', 1);
            })

            ->leftjoin('cd_purchase_order_line_ruku ff','ff.purchase_order_id >= b.purchase_order_id and ff.price=b.price and b.product_id=ff.product_id and ff.status=4 and ff.order_type_id=1 and ff.company_id=a.company_id')
            ->leftjoin('cd_purchase_order_line_tuihuo f','f.product_id=b.product_id and f.purchase_order_id > a.purchase_order_id  and b.price=f.price  and f.status=7 and f.order_type_id=2 and f.company_id=a.company_id')
            ->having('ruku_sum > tuihuo_sum')
            ->group('b.product_id,a.company_id')
            ->select();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值