laravel groupby冲突

gajydyqb  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(345)

这个问题在这里已经有答案了

在mysql中执行查询时,仅与\u full \u group \u by相关的错误(18个答案)
两年前关门了。
我想在auth user的收件箱中获取所有给他发送消息的人的姓名。
我有疑问

$user_id=Auth::id();
    $messages=Chat::with('user')
    ->where('user_id',$user_id)
    ->groupBy('friend_id')
    ->limit(10)
    ->get();

但拉威尔不让我明白,他说:
sqlstate[42000]:语法错误或访问冲突:select list的1055表达式#1不在group by子句中,并且包含未聚合的列'mojaodeca.chats.id',该列在功能上不依赖于group by子句中的列;这与sql\u mode=only\u full\u group\u by(sql:select*from)不兼容 chats 哪里 user_id =1分组依据 friend_id 限制(10)

jbose2ul

jbose2ul1#

请检查group by的mysql处理-您的选择列表必须在聚合函数中。

$messages = Chat::select('user_id', DB::raw('COUNT(user_id) as count'))
            ->with('user')
            ->groupBy('friend_id')
            ->limit(10)
            ->get();
gfttwv5a

gfttwv5a2#

用这个

$user_id=Auth::id();
 $messages=Chat::with('user',function($q){
                     $q->groupBy('friend_id')
                  })
    ->where('user_id',$user_id)
    ->limit(10)
    ->get();

相关问题