我正在尝试创建一个收件箱列表,其中只显示具有不同“父ID”的邮件。因此,从user1到user2的消息的父ID将与从user2到user1的消息的父id相同。因此,我的收件箱只会为每个唯一对话显示一个项目。但我无法弄清楚如何选择不同的父ID和那些相关的消息信息。这就是我现在所拥有的:
$sql = "SELECT sender, receiver, message, timestamp, (distinct parent)
FROM messages WHERE receiver='$log_username' OR sender='$log_username'
ORDER BY timestamp DESC
";
我希望能够从每个唯一的父组中获取最新的消息行,然后将包含最新消息的父组放在收件箱列表的顶部。我可以选择不同的父组,但后来我无法弄清楚如何获取该父组中最新消息的发送者/接收者/消息/时间戳数据。
答案 0 :(得分:1)
这应该可以满足您的需求。它将为每个父母提供一条消息,并按最近收到的消息进行排序。
SELECT sender, receiver, message, timestamp, parent
FROM messages
WHERE receiver='$log_username' OR sender='$log_username'
GROUP BY parent
ORDER BY timestamp DESC