You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel查询当日销售额Top3用户时seller关联无返回问题求解

问题原因
  • 原查询没有选择seller关联对应的外键字段(通常为seller_id,可根据你模型的关联定义调整),Laravel ORM无法匹配到对应的关联模型数据,导致with('seller')加载失败
  • 没有按卖家ID分组,sum(total_wholesale)统计的是全部当日订单的总销售额,而非每个卖家各自的销售额
修正后代码

查询逻辑调整如下:

// 请将代码中的seller_id替换为你Order模型关联seller时定义的外键字段名
Order::select('seller_id', DB::raw('sum(total_wholesale) as sums'))        
    ->whereDate('created_at', Carbon::today())
    ->groupBy('seller_id')
    ->orderBy('sums', 'DESC')        
    ->take(3)
    ->with('seller')
    ->get();

如果需要输出你要求的格式,遍历查询结果即可:

$top3Sellers = Order::select('seller_id', DB::raw('sum(total_wholesale) as sums'))        
    ->whereDate('created_at', Carbon::today())
    ->groupBy('seller_id')
    ->orderBy('sums', 'DESC')        
    ->take(3)
    ->with('seller')
    ->get();

foreach ($top3Sellers as $orderStat) {
    // 这里的name替换为你seller模型里对应的用户名字段
    echo "{$orderStat->seller->name} {$orderStat->sums}\n";
}
注意事项
  • 如果MySQL开启了ONLY_FULL_GROUP_BY严格模式,确保select中仅包含分组字段seller_id和聚合统计字段sums,seller的其他属性通过with关联加载即可,不需要在Order的查询中选择
  • 如果你的关联外键不是seller_id,请替换为你实际定义的外键字段名

内容的提问来源于stack exchange,提问作者m33ts4k0z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:45:08