从select语句中的两个表中选择MAX

时间:2011-10-27 17:04:28

标签: tsql

我有论坛系统的表格。我想在论坛页面上显示以下数据   主题,描述,最后发布日期(发布或评论),以及发表上一篇文章的用户名(发布或评论)

这是我的表格

ForumSubject[
   Id,
   Subject,
   Description
 ]


ForumPost[
   id,
   Subject,
   Title
   Body,
   UserId,
   Date
 ]

ForumComment[
   id,
   PostId,
   UserId,
   Date,
   Comment

 ]

 User[
    id
    Name
  ]

这是我到目前为止所拥有的

SELECT
subject.Id,
subject.Description,
subject.Subject
FROM dbo.ForumSubject subject

我现在如何获得最后一个帖子或评论的MAX日期,以及帖子的用户名???

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以这样做:

   SELECT s.Id, s.Subject, s.Description, t2.LastDate
   FROM dbo.FormSubjet s
   INNER JOIN (
    SELECT Id, Max(Date) as LastDate
    FROM (
        SELECT Id, Date
        FROM dbo.FormPost
        UNION ALL
        SELECT Id, Date
        FROM dbo.FormComment
    ) t1
    GROUP BY t1.Id      
    ) t2 ON t2.Id = s.Id