执行laravel查询时未获取所有表数据

执行laravel查询时未获取所有表数据,laravel,Laravel,我使用了laravel查询:- $sub = BaseMessagesHistory::select('messages_history.*')->orderBy('created_at','DESC'); $chats = DB::table(DB::raw("({$sub->toSql()}) as sub")) ->select('receiver_user_id',DB::raw('max(created_at) as rec

我使用了laravel查询:-

 $sub = BaseMessagesHistory::select('messages_history.*')->orderBy('created_at','DESC');

        $chats = DB::table(DB::raw("({$sub->toSql()}) as sub"))
            ->select('receiver_user_id',DB::raw('max(created_at) as recent_time'))
            ->where('sender_user_id',$userId)
            ->orwhere('receiver_user_id',$userId)
            ->groupBy('receiver_user_id')
            ->havingRaw('max(created_at)')
            ->latest()->get();
结果:-

我只得到最近的时间和接收者用户id

期望:-我需要表格中的全部数据,而不仅仅是最近的时间和接收者用户id


因此,您能帮我一下吗?

它将只返回您在选择中提到的那些列。 在您的查询中,您只提到了receiver\u user\u id和最近的\u时间

您需要在select中添加所有需要的列

或者试试这个->选择'sub.*',DB::raw'maxcreated\u在最近的时间'


希望这有帮助。如果有疑问,请询问。

有什么帮助请帮助我吗?我只得到最近的时间和接收者用户id,原因:->选择“接收者用户id”,DB::raw“maxcreated\u at as later\u time”但是,最好->toSql您的查询来调试它。当我在select查询中添加多个列名时,我得到以下错误:-SQLSTATE[42000]:语法错误或访问冲突:1055“sub.sender\u user\u id”不在SQL分组中:选择receiver\u user\u id、maxcreated\u at as later\u time、sender\u user\u id、message、,来自select messages_history的状态。*来自messages_history order by created_at desc as sub,其中发送方_user_id=138或接收方_user_id=138 group by receiver_user_id具有maxcreated_at order by created_at descany help非常感谢DSQLState[42000]:语法错误或访问冲突:1055'sub.id'不在group by SQL中:select sub.*,maxcreated\ U at as NEXT\ U time from select messages\ U history.*from messages\ U history order by created\ U at desc as sub其中发送方\用户\ id=138或接收方\用户\ id=138 group by接收方\用户\ id具有maxcreated\ U at ORDECREATED\ U at desc as sub任意帮助?
   ->select('receiver_user_id',DB::raw('max(created_at) as recent_time'))