Table ins_post_reply
reply_id(int),  send_id(int),        reply_user_id(int),     reply_date Timestamp回帖ID          帖子ID(外键)          回帖用户ID(外键)        回帖时间
一句SQL 查询每个帖子的回帖个数、最后回帖时间、最后回帖人   

解决方案 »

  1.   

    USE tempdb
    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看看是不是你想要的,然后回帖人那里你自己再关联其他表得到名字吧答对了记得给分哦
      

  2.   

    WITH CTE  递归查询 2005及以上版本才支持吧