我目前正在构建一个会话式邮件系统,需要协助处理从数据库中读取的邮件的顺序。
数据库中消息表的数据库结构如下:
messageid |内容| message_from | message_to |查看|删除| sent_date
我希望按照发送的顺序阅读邮件,但如果没有回复就发送多条邮件,请不要重复用户名。
因此,如果有3个message_from到同一个message_to,它们将被显示,然后在此之后会有任何响应。但正如我所说的,如果有来自同一个人的3条消息没有回复,我会先显示用户名,然后再显示内容。
我有以下查询,用于提取发送给用户的邮件。
SELECT f.username, t.username, m.content, m.sent_date FROM message m
INNER JOIN user f ON f.userid = m.message_from
INNER JOIN user t ON t.userid = m.message_to
WHERE f.username = :username
我尽力解释我需要什么,不知道我有多清楚!
感谢。
答案 0 :(得分:1)
我决定在显示逻辑中显示用户名,而不是数据库逻辑。 (即在你的HTML生成脚本中)
要确保结果的顺序正确,请在SQL语句末尾使用ORDER BY m.sent_date ASC
。