我正在尝试将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
顺序,按joindraw
。created_at
desc限制10)
答案 0 :(得分:1)
在严格模式下,启用groupBy还需要将select中的所有列也都包含在groupBy中。要删除此验证,您可以在strict => false
的{{1}}中设置config/database.php
,也可以指定模式,以免影响其他模式。像这样:
mysql