Laravel - 多个 select 查询

Laravel - multiple select query

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

SELECT 列表的表达式 #2 不在 GROUP BY 子句中并且包含...

我错过了什么?

我的查询:

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

这是 SQL 标准功能,与 laravel 没有任何关系。您可以将所需的列添加到分组依据或使用诸如求和等聚合函数。

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

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