我有一个具有以下结构的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(允许重复),新=状态(读取或不读取)。
我正在尝试使用此查询检索由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的记录。
我没有得到这种行为,我找不到解决方案。