Выбор MAX из двух таблиц в инструкции select

#tsql

#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
  

Как теперь я могу получить МАКСИМАЛЬНУЮ дату публикации или комментария, которые когда-либо были последними, и имя пользователя для публикации???

Спасибо!

Ответ №1:

Вы можете это сделать :

    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