代码之家  ›  专栏  ›  技术社区  ›  322quick1

Laravel-多选择查询

  •  0
  • 322quick1  · 技术社区  · 2 年前

    我想从数据库表的两列中提取数据,但我不太擅长查询SQL。当我执行此查询时,会出现以下错误:

    选择列表的表达式#2不在GROUP BY子句中,包含。。。

    我错过了什么?

    我的问题是:

    $top_orders = OrderItem::select('name','productId', DB::raw('count(name) as total'))->groupBy('name')->orderBy('total','desc')->take(5)->get();
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   xuma    2 年前

    这是SQL的标准特性,与laravel无关。您可以将所需的列添加到group by或使用诸如sum等加总函数。

    如果指定GROUP BY子句,则引用的列必须是SELECT子句中不包含聚合函数的所有列。这些列可以是列、表达式或列列表中的序号。

    $top_orders = OrderItem::select('name','productId', DB::raw('count(name) as total'))
      ->groupBy('name','productId')
      ->orderBy('total','desc')
      ->take(5)
      ->get();