#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