thinkphp6 报错:SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is

源代码:

    public function getHotGoods()
    {

       return $this
            ->alias("a")
            ->join("order b","a.order_id = b.order_id")
            ->where("b.pay_status = 20")
            ->group('a.goods_id')
           ->order('a.total_num','desc')
           ->select();
    }

修改过后的代码:

  public function getHotGoods()
    {


        return $this
            ->alias("a")
            ->join('order b', "a.order_id = b.order_id")
            ->where('b.is_delete', 0) // 确保订单未被删除
            ->field('a.goods_id, SUM(a.total_num) AS total_sold') // 选择商品ID和购买总数
            ->group('a.goods_id') // 按商品ID分组
            ->order('total_sold', 'desc') // 按购买总数降序排序
            ->select();
}

原因: group() 中的字段 前一定要filed ()中先出现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值