我有两个表-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;
但是此查询仅返回整个表中的一行和最大消息日期。
答案 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;