【发布时间】:2013-09-14 08:25:13
【问题描述】:
我想获得列中的最新行,但我需要在将它们彼此分组之前获取它们。如果我在 group by 之后放置 Order by,mysql 将它们排序在它们之前分组。
我尝试做的是,将用户的最后一条消息相互分组(如 facebook 聊天。)
如果客户有 3 个对话,他/她需要将消息列表作为最后一个对话:
(假设,移动用户昵称是 Rob,他正在列出他的消息历史......)
Rob -> Thomas(你好,我会尽快回来。)
Dyne -> Rob(你在哪里?)
Rob -> Danilla(你好吗?)
SELECT
u.userNickName,
u.userFBID,
m.didRead,
max(m.messageID) messageID,
m.messageContent,
m.srcUserID,
m.destUserID,
m.messageSendDate
FROM
users u, messages m
WHERE
(m.srcUserID='122' || m.destUserID ='122')
AND
u.userID = m.destUserID
GROUP BY
u.userNickName
【问题讨论】: