【发布时间】:2015-04-16 15:01:57
【问题描述】:
我有一张表messages 用于用户之间的对话。
表列的名称是:
messageID | fromUser | forUser | message | submitDate | seen
样本数据:
1 | 1 | 2 | "hi" | "12341" | 0
2 | 2 | 1 | "hi" | "12342" | 0
3 | 1 | 3 | "hi" | "12343" | 0
4 | 1 | 4 | "hi 4" | "12344" | 0
5 | 2 | 1 | "hello" | "12345" | 0
6 | 1 | 2 | "hello how r u?" | "12346" | 0
7 | 3 | 1 | "hello user 1" | "12345" | 0
我如何编写查询来查找我与系统中所有其他用户之间发送的最后一条消息? 我的意思是最后的消息是:
between user 1 and 2 : "hello how r u?"
between user 1 and 3 : "hello user 1"
between user 4 and 1 : "hi 4""
我的查询:
$query = "SELECT DISTINCT `fromUser`, `forUser`, `message`, `seen`,
`username`, `userPhoto`
FROM `messages`,`user`
WHERE (`forUser`= '$myUserID' OR `fromUser`= '$myUserID')
AND (((`forUser`= `userID`) AND (`forUser` != '$myUserID'))
OR ((`fromUser`= `userID`)
AND (`fromUser` != '$myUserID')))
ORDER BY `submitDate` DESC";
但此查询需要获取对话中的所有消息!我只需要最后一条消息。
【问题讨论】:
-
SELECT * FROM messages WHERE fromUser='1' AND forUser='2' ORDER BY submitDate DESC? -
我需要获取用户 1 的所有对话的最后一条消息。
-
到目前为止您尝试过什么吗?为什么 submitDate 是 5 个字符的字符串?
-
我提出了我的问题。它只是样本数据。但真正的是时间戳。