语法错误或访问冲突:1055'wockhardt_indigo.stock_levels.id'不在GROUP BY中

时间:2016-09-08 11:52:27

标签: mysql laravel group-by eloquent

我最近开始使用以下声明收到错误

Model::select(DB::raw('*, SUM(`unrestrict`) as sumUnrestrict, SUM(`quarantine`) as sumQuarantine'))->with(['materialDescription'])->orderBy('mat_no')->groupBy('mat_no')->get();

错误是

Syntax error or access violation: 1055 'wockhardt_indigo.stock_levels.id' isn't in GROUP BY

有什么想法解决? TIA

2 个答案:

答案 0 :(得分:1)

您必须明确指定所需的列,这些列必须与组中的列相匹配,例如:

Model::select(DB::raw('mat_no,  
SUM(`unrestrict`) as sumUnrestrict, 
SUM(`quarantine`) as sumQuarantine'))->
with(['materialDescription'])->
orderBy('mat_no')->
groupBy('mat_no')->get();

答案 1 :(得分:0)

似乎是Laravel框架中的一个问题。 Laravel 5.3附带了SQL中的严格模式,它不能与Eloquent一起工作,在config / database中更改为false.php解决了解决方案并带回了5.2行为。