0

我有一个具有以下结构的 mysql 表:

id | fuid | tuid | msg | time | new
-- -- -- -- -- -- -- - -- -- -- -- -- - -- -- 
1 | 58 | 6 | test msg |2014-07-29 12:06:45 | 1
2 | 18 | 6 | test msg |2014-07-29 11:38:00 | 1
3 | 58 | 6 | test msg |2014-07-29 11:38:00 | 1
4 | 58 | 6 | test msg |2014-07-28 17:08:54 | 1
5 | 58 | 6 | test msg |2014-07-28 17:08:48 | 0
6 | 39 | 6 | test msg |2014-07-28 16:47:54| 0
7 | 21 | 6 | test msg |2014-07-28 16:37:40| 0
8 | 83 | 6 | test msg |2014-07-28 16:33:35| 0
9 | 83 | 6 | test msg |2014-07-28 16:32:51| 1
10 | 83 | 6 | test msg |2014-07-28 16:32:45| 1

其中 fuid = 从用户 id(允许重复),tuid = 到用户 id(允许重复),new = 状态(是否读取)。

我正在尝试使用以下查询检索按 fuid 分组的最新消息(new = 1):

SELECT ch1.* 
FROM chat_history ch1 INNER JOIN 
(
    SELECT fuid, MAX(`time`) as `time` 
    FROM chat_history 
    GROUP BY fuid
) ch2 
ON ch1.fuid=ch2.fuid AND ch1.time=ch2.time 
WHERE ch1.new=1 AND ch1.tuid=6 
ORDER BY ch1.time DESC

...以及最新的已读消息(更改 ch1.new = 0)。

问题:对于 new=1,我没有得到 fuid=83 的记录,而对于 new=0,我没有得到 fuid=58 的记录。

我没有得到这种行为,也找不到解决方案。

4

0 回答 0