Mysql GroupBy在使用leftjoin时忽略orderBy

Mysql GroupBy在使用leftjoin时忽略orderBy,mysql,laravel,Mysql,Laravel,我有两张桌子 房间带有id,标题 与id,内容,房间id,在 我的目标是在desc模式下在chats的中获取rooms和创建orderBy。这是一个简单的查询,但却让拉威尔感到头痛。我不能使用雄辩的ORM方式,用方法在中进行排序。因此,我不得不使用连接 我的查询如下所示: $items=$items->select(“聊天室”。”->join(“聊天室”、“聊天室id”、“聊天室id”)->orderBy(“聊天室创建地址”、“描述”)->groupBy(“聊天室id”) 结果: 我在处获取创建

我有两张桌子

房间
带有
id
标题
id
内容
房间id

我的目标是在
desc
模式下在
chats
中获取
rooms
和创建orderBy
。这是一个简单的查询,但却让拉威尔感到头痛。我不能使用雄辩的ORM方式,用
方法在
中进行排序。因此,我不得不使用
连接

我的查询如下所示:

$items=$items->select(“聊天室”。”->join(“聊天室”、“聊天室id”、“聊天室id”)->orderBy(“聊天室创建地址”、“描述”)->groupBy(“聊天室id”)

结果:

  • 我在
  • 处获取创建的
    数据时没有任何订单
    
  • 删除
    groupBy
    将产生正确的顺序,但由于缺少
    groupBy
    ,该聊天室将与它的
    聊天室一样多。所以这不是一个好方法

  • 我错过了什么?如果我需要包含其他信息,请在注释中告诉我。

    正如注释所述,我应该在查询中使用
    聚合
    函数,同时使用groupby函数。基本上是这样的

    $items=$items->选择(“房间。*”)
    ->选择RAW(“最大(聊天记录创建时间)为最新创建时间”)
    ->加入(“chats”、“chats.room_id”、“=”、“rooms.id”)
    ->orderBy(“最新创建时间”,“描述”)
    ->groupBy('rooms.id');
    

    然后,它将被正确地订购。我将离开该线程,也许有人会使用与我相同的笨拙搜索关键字,并看到以下问题:)

    我使用了leftJoin和join,两者的结果相同,尽管我认为在这种情况下使用leftJoin更合理,因为我只对左边的表
    rooms
    感兴趣。按列分组后,没有其他列在排序上有意义-此类列中的聚合函数仅有意义。您能给出一个示例方法吗?我已经找到了。我会发布我的答案。