0

我目前正在构建一个对话式消息传递系统,需要帮助从数据库中读取消息的顺序。

数据库中消息表的数据库结构如下:

消息ID | 内容 | message_from | message_to | 查看 | 已删除 | 发送日期

我想按发送顺序读出消息,但如果发送多条消息而没有回复,则不要重复用户名。

因此,如果有 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

我已经尽力解释我需要什么,不知道我有多清楚!

谢谢。

4

1 回答 1

1

我会决定在显示逻辑而不是数据库逻辑中显示用户名。(即在您的 HTML 生成脚本中)

要确保结果的顺序正确,ORDER BY m.sent_date ASC请在 SQL 语句的末尾使用。

于 2013-03-31T18:37:03.653 回答