1我正在尝试使用 gmail 之类的对话线程编写消息表。(我使用 php)。表格如图所示。posID 表示给定 threadID 中每条消息的位置。
id | senderID | recvrID | message(threadID,posID) | threadID | posID | time
1 1 3 msg 1,1 1 1 12pm
2 3 1 msg 1,2 1 2 3pm
3 1 2 msg 2,1 2 1 1pm
我需要编写一个查询来查找所有 msg 线程到 senderID=1(在这种情况下),如果一个线程中有多个 msg,则仅在每个线程中选择最后一个 msg(可以按 positionID 或时间排序)。
预期输出如下表。
senderID | message | Time
1 msg 1,2 3pm
1 msg 2,1 1pm
编辑:经过更多阅读,我想我需要选择具有发送者/接收者约束的消息,并且(如果线程中有多个消息,则每个线程 ID 仅具有 MAX(posID) 的那些消息)。不知道如何实现这一点。