Table ins_post_reply
reply_id(int), send_id(int), reply_user_id(int), reply_date Timestamp回帖ID 帖子ID(外键) 回帖用户ID(外键) 回帖时间
一句SQL 查询每个帖子的回帖个数、最后回帖时间、最后回帖人
reply_id(int), send_id(int), reply_user_id(int), reply_date Timestamp回帖ID 帖子ID(外键) 回帖用户ID(外键) 回帖时间
一句SQL 查询每个帖子的回帖个数、最后回帖时间、最后回帖人
GO
CREATE TABLE ins_post_reply
(
reply_id int ,
send_id int,
reply_user_id int,
reply_date datetime
);
insert into ins_post_reply
values(1,1,123,getdate())
go
waitfor delay '00:00:05'--为区别回帖时间延迟5秒
begin
insert into ins_post_reply
values(2,1,321,GETDATE())
end
go
waitfor delay '00:00:05'--为区别回帖时间延迟5秒
begin
insert into ins_post_reply
values(3,1,444,GETDATE())
end
go
waitfor delay '00:00:05'--为区别回帖时间延迟5秒
begin
insert into ins_post_reply
values(1,2,123,GETDATE())
end
go
waitfor delay '00:00:05'--为区别回帖时间延迟5秒
begin
insert into ins_post_reply
values(2,2,321,GETDATE())
end --每个帖子的回帖个数、最后回帖时间、最后回帖人
WITH CTE (RCOUNTS,RTIME,RID)
AS (SELECT COUNT(1) AS RCOUNTS,MAX(reply_date),reply_id FROM ins_post_reply GROUP BY reply_id)
SELECT RCOUNTS,RTIME,A.reply_user_id
FROM ins_post_reply A INNER JOIN CTE B ON A.reply_id=B.RID AND A.reply_date=B.RTIME看看是不是你想要的,然后回帖人那里你自己再关联其他表得到名字吧答对了记得给分哦