我有:
MESSAGES table
message_id | conversation_id | from_user | timestamp | message
我想:
SELECT * WHERE from_user <> id
GROUP BY conversation_id
SELECT
在每个组中MAX(timestamp)
行 - 如果组中有相同的时间戳,请使用第二个因子作为最高message_id
ORDER BY timestamp
得到结果:
2|145|xxx|10000|message
6|1743|yyy|999|message
7|14|bbb|899|message
已淘汰
1|145|xxx|10000|message
(has the same timestamp(10000) as message(2) of the same conversation(145)
but message id is lowest)
5|1743|me|1200|message
(has `message_from = 'me'`)
具有相同时间戳的示例组
我希望从第3组开始,但是从下面的查询中得到第2行:
SELECT max(message_timestamp), message_id, message_text, message_conversationId
FROM MESSAGES
WHERE message_from <> 'me'
GROUP BY message_conversationId
ORDER by message_Timestamp DESC
我的想法是union
和message_id
timestamp
然后获得最大值。如果这是个好主意,我该如何实现呢?