题
我有两个表。
BoardPosts
BoardPostId INT PK
ModifiedOn DATETIME NULLABLE
BoardComments
BoardCommentId INT PK
BoardPostId INT
CreatedOn DATETIME
一个基板柱具有零到许多意见。
我要设置的ModifiedOn
领域是最近的评论日期,如果董事会有一个注释。否则,就让它空。
我如何做到这一点,使用TSQL?
像...
UPDATE BoardPosts
SET ModifiedOn = CreatedOn
SELECT TOP(1) CreatedOn
FROM BoardPosts a INNER JOIN BoardComments b ON a.BoardPostId = b.BoardPostId
???
解决方案
我想这会工作...
UPDATE BoardPosts
SET ModifiedOn = (SELECT MAX(CreatedOn)
FROM BoardComments
WHERE BoardComments.BoardPostId = BoardPosts.BoardPostId)
其他提示
我决定兼顾评论和未注释的帖子:
update p1 set ModifiedOn = (
select
max(case when c.CreatedOn is null then p.CreatedOn
else c.CreatedOn end) as ModDate
from
boardposts p
left outer join BoardComments c on
p.BoardPostId = c.BoardPostId
where
p.BoardPostId = p1.BoardPostId
group by p.BoardPostId
)
from
BoardPosts p1
希望这有助于!
不隶属于 StackOverflow