我有一张表来存储在 xmpp 服务中发送的所有消息。我正在寻找创建一个查询以获取所有对话及其第一条消息(例如聊天日志中的 whatsapp)。
这是我的桌子。
FromPersonId
并且ToPersonId
是人的身份证。我所做的是,例如我想查看 personId = 643 的所有对话
SELECT DISTINCT MA.FromPersonId, MA.ToPersonId, MAX(MA.SENTDATE) AS [Date], Body
FROM MessageArchive AS MA
WHERE MA.FromPersonId = @personId OR MA.ToPersonId = @personId
GROUP BY MA.FromPersonId, MA.ToPersonId, Body
ORDER BY [Date] DESC
以上是我所拥有的。结果是
如您所见,结果是相同的对话。但无法区分那是同一个对话,因为是同一个人但处于不同的位置。
我怎样才能解决这个问题?