gpt4 book ai didi

Mysql 仅在 2 个字段上使用 DISTINCT

转载 作者:行者123 更新时间:2023-11-29 14:47:27 27 4
gpt4 key购买 nike

我有一个mysql数据库表如下

id | uid | touid | message | time

该数据库包含一个人发送给另一个人的消息。我需要获取我和所有其他用户之间传输的最新消息。

目前我正在使用如下查询:

SELECT uid, touid, message, time
FROM messages
WHERE uid = "'.$currentuser.'"
OR touid = "'.$currentuser.'"
ORDER by time DESC;

这将获取我和任何其他用户之间的所有消息。但我只需要显示我和所有其他用户之间传输的设置的最新消息。

它尝试使用 GROUP BY 但顺序受到影响。那么还有其他解决办法吗?

有什么想法吗?如果不清楚请评论

最佳答案

SELECT 
m1.*
FROM
messages m1
JOIN
(SELECT UID, TOUID, MAX(time) time FROM messages GROUP BY UID, TOUID) m2
ON m1.UID=m2.UID AND m1.TOUID=m2.TOUID and m1.time=m2.time
WHERE
m1.uid = "'.$currentuser.'"
ORDER BY
m1.time DESC;

关于Mysql 仅在 2 个字段上使用 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com