我在这里发现了类似的问题: MySQL get latest conversation messages
但是,通过该解决方案,我只能收到与用户之间的最新消息。
好吧,这就是我的出发点:
每当用户自己发送消息时,都会如下创建数据库条目。
每当用户收到消息时,都会如下创建数据库条目。
现在应该输出带有时间的最后一条消息-为每个朋友分组。
这是我当前的代码:
$query1 = "SELECT Zeit as zeit, Text as msg, 'U1' as chattype, A as friend, ID as id
FROM Nachrichten
WHERE ID IN (
SELECT MAX(ID)
FROM Nachrichten
WHERE A = '$person'
GROUP BY B)
ORDER BY ID DESC";
$query2 = "SELECT Zeit as zeit, Text as msg, 'U2' as chattype, B as friend, ID as id
FROM Nachrichten
WHERE ID IN (
SELECT MAX(ID)
FROM Nachrichten
WHERE B = '$person'
GROUP BY A)
ORDER BY ID DESC";
$ergebnisa = mysql_query("SELECT *
FROM
(
($query1)
UNION ALL
($query2)
) t
ORDER BY t.Zeit DESC LIMIT 5");
示例问题:
假设这两个消息是最新的。 这两条消息现在显示为最新消息,尽管实际上只显示第二条消息,因为之前的消息也是新消息,但属于同一位朋友。