我正在尝试创建一个页面,该页面将显示批准的帖子数量并将其按created_at列分组。
当我使用编写的代码时,会出现此错误
ErrorException SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列'blog.posts.id',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容(SQL:从
posts
中选择*,其中status
=由created_at
批准的组)(查看:/ home / workspace / Documents / projects / blog / Modules /帖子/资源/视图/index.blade.php)
这是我的代码
$approved = Post::where('status', 'approved')->groupBy('created_at')->get();
dd($approved);
答案 0 :(得分:1)
$data = DB::table('posts')
->groupBy('created_at')
->having('status','approved')
->get();
根据情况随时随地更改
答案 1 :(得分:0)
使用groupby
子句时,请始终在select语句中添加要分组的列名
EG:
$approved = Post::select('created_at')
->where('status', 'approved')
->groupBy('created_at')->get();
dd($approved);