通过Laravel中的计数将表多列groupBy连接起来

时间:2019-03-12 10:58:55

标签: laravel laravel-5 eloquent

我正在尝试将joindraw表与count分组,但出现以下错误。如何通过多个列获取计数和分组?

控制器

$joindraw_participants = Joindraw::where('product_id', $id)
                         ->groupBy('user_id', 'created_at')
                         ->with('user')->take(10)->desc()->get();

错误

  

SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'yangmao.joindraw.id',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容(SQL:从joindraw中选择*,其中product_id = 1组,按user_id顺序,按joindrawcreated_at desc限制10)

1 个答案:

答案 0 :(得分:1)

在严格模式下,启用groupBy还需要将select中的所有列也都包含在groupBy中。要删除此验证,您可以在strict => false的{​​{1}}中设置config/database.php,也可以指定模式,以免影响其他模式。像这样:

mysql