MySQL:GROUP BY最新记录 - 未显示某些记录

时间:2014-07-29 09:48:25

标签: mysql sql group-by getlatest

我有一个具有以下结构的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的记录。

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

0 个答案:

没有答案