我有两张 table - groups
和 messages
。
消息具有以下字段 group_id
和 date_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;
但是此查询仅返回整个表中的一行和最大消息日期。
最佳答案
您缺少分组依据
:
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;
关于MySQL:按连接表的最大日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51422346/