这个问题在这里已有答案:
如果我在phpmyadmin中编写以下查询,它将运行并返回正确的结果
select `u`.*, count(t.empid) as totalassignedtask from `users` as `u` left join `tasks` as `t` on `t`.`empid` = `u`.`id` where `u`.`role` = 'user' group by `t`.`empid`
但是,如果我在这样的laravel中写这个查询
$allemp = DB::table('users as u')
->leftJoin('tasks as t','t.empid','=','u.id')
->where('u.role','=','user')
->select('u.*',DB::raw('count(t.empid) as totalassignedtask'))
->groupBy('t.empid')
->get();
我收到一个错误:
Illuminate \ Database \ QueryException(42000)SQLSTATE [42000]:语法错误或访问冲突:1055'employee.u.id'不在GROUP BY中(SQL:select u . *,count(t.empid)as totalassignedtask从任务开始加入用户作为你在t.empid = u.id,其中u.role =用户组由t.empid)
3 回答
在config / database.php中“mysql”更改:
为假 . 希望能帮助到你!
这可能是SQL_MODE问题 .
在你的config / database.php中,在连接中,更改mysql
谢谢你的回答 - 我在代码中更改了列名,它确实有效