【问题标题】:MySQL: Order by max date of a joined table [duplicate]MySQL:按连接表的最大日期排序[重复]
【发布时间】:2018-07-19 12:09:23
【问题描述】:

我有两张桌子 - groupsmessages


消息具有以下字段 group_iddate_created。因此,可以将大量消息添加到单个组中。我想从表中选择所有组 - 最相关的在顶部,即按最新消息日期排序。我已经尝试过这样的事情

SELECT g.*, MAX(m.date_created) AS mdt FROM groups g
LEFT JOIN messages m ON g.id = m.group_id
ORDER BY mdt DESC;

但是这个查询只返回整个表中的一行和最大消息日期。

【问题讨论】:

  • cg 未定义。您的查询应该返回一个错误。

标签: mysql sql subquery sql-order-by


【解决方案1】:

你不见了group by:

SELECT g.*, MAX(m.date_created) AS mdt
FROM groups g LEFT JOIN
     messages m
     ON g.id = m.group_id
GROUP BY g.id
ORDER BY mdt DESC;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2014-07-20
    • 2016-05-06
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多