我在 mysql 中有一个表,它存储用户之间的消息。该表具有以下字段:
ID from_memberID to_memberID message Date
+----+--------------+------------+-----------------------+-----------------------+
1 205 207 hello Peter 19/08/2012 20:00:00
2 207 205 Hi frank 19/08/2012 20:01:00
3 205 208 hello Jennifer 19/08/2012 20:10:00
4 207 210 hello Peter 19/08/2012 20:20:00
好吧,假设我只想从用户 205 的每个对话中获取最后一条消息
它应该得到寄存器 2 和 3,用户(205-207)和用户(205-208)之间的对话。事实是我使用 GROUP BY from_memberID 然后在我的结果中也添加了寄存器 ID=1。
这是使用的语句:
SELECT *
FROM
(SELECT msg.ID,
msg.mensaje,
msg.from_miembroID,
msg.fecha,
msg.read,
FROM mensajes as msg
INNER JOIN miembros as mem ON mem.ID=IF(msg.from_miembroID=205, msg.to_miembroID, msg.from_miembroID)
WHERE msg.to_miembroID=205 OR msg.from_miembroID=205
ORDER BY msg.fecha DESC) as temp
GROUP BY from_miembroID
我如何使用 GROUP BY 将两列(from_memberID、to_memberID)视为一列?
提前致谢。