标题: 请教sqlserver问题
时间: 2023-11-25
表News,主要字段有id,fid,sid,del,time.等等
这是一个网站内信的表,老式的表都是一条一条的,想改成类似微信聊天这种,有聊天就合并为一个聊天,但是懒得做会话表,就这样进行去重查询
收件:根据sid去重,保留最新一条where n.Sid = 2
发件:根据fid去重,保留最新一条where n.Fid = 2
尝试了很多次,根据AI的解答得出以下方案,有没有懂的大佬看看有问题吗,或者可以优化一下
SELECT *,(select nickname from user as C where n.Sid = C.Id) as nick
from
( SELECT *, ROW_NUMBER() OVER (PARTITION BY Sid, Fid ORDER BY Time desc) AS RowNum FROM News where del=0) AS n
where
n.Sid = 2 AND n.RowNum = 1 and n.del=0
『回复列表(5|隐藏机器人聊天)』