SELECT *
FROM message m3
WHERE id NOT IN (#查询需要去重的id
select DISTINCT m1.id
FROM message AS m1
INNER JOIN message AS m2
WHERE m1.id != m2.id #过滤掉自身关联
AND ((
m1.receiveid = m2.sendid
AND m1.sendid = m2.receiveid)
OR (
m1.sendid = m2.sendid
AND m1.receiveid = m2.receiveid ) )
AND m1.create_time < m2.create_time #
GROUP BY m1.id,
m2.id);
应该是消息的去重,给一个简单思路吧,使用自连接
初始化表:
Sql脚本:
这里有个问题,就是需要去重的两条消息的时间是相同的话,不知道你要怎么处理。希望能帮到你。
不知道数据用一次还是经常需要用,不经常的话可以参考楼上的写法,如果经常使用建议新建一个表,不然效率太低!