MySQL:按联接表的最大日期排序

时间:2018-07-19 12:09:24

标签: mysql sql subquery sql-order-by

我有两个表-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;

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

1 个答案:

答案 0 :(得分:2)

您缺少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;