我有一个消息表 -
msg
_____
id int(11)
subject varchar(255)
content text
create_time datetime
parent int(11)
parent
msg
是表本身的外键。parent
只能引用已parent
设置为的行,即对话NULL
内的所有回复都有一个父级:对话的第一条消息。
我希望能够按 的降序选择父create_time
邮件,同时考虑到create_time
他们的回复,例如 Gmail 中分组对话的顺序。我还想加入对每位家长的最新回复(如果存在)。
我无法想出正确的 SQL。这是我到目前为止所做的 -
SELECT * FROM `msg` `parent`
LEFT JOIN `msg` `reply`
ON `reply`.`parent` = `parent`.`id`
WHERE `parent`.`parent` IS NULL
GROUP BY `parent`.`id`
ORDER BY `reply`.`create_time` DESC
两个直接的问题是 -
- 父创建时间不包含在该
ORDER BY
子句中。 - 这不是给我最近对父母的答复。
我很感激朝正确的方向戳。谢谢。