如何用一张表的某字段最大值更新另一张表

sunjunfeng4 2008-11-17 03:30:33
论坛数据库有两张表 A,和B
表A 是贴子内容表
A
topicID title postDate ,lastReplyDate
表B是保存回贴的结果如下
TopicID ReplyText,ReplyDate

一条贴子对应多条回贴,即在A表的一条记录对应B表的多条记录,
问题:现在A表的最后回复时间(LasyReplyDate) 是段出错了,要用B表来修改A表的lastReplyDate
即要 求出B表中 最近max(ReplyDate) 回复时间 修表A

如果完成这个工作??如何写SQL 紧急啊
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ws_hgo 2008-11-17
  • 打赏
  • 举报
回复
/*
表A 是贴子内容表
A
topicID title postDate ,lastReplyDate
表B是保存回贴的结果如下
TopicID ReplyText,ReplyDate \
问题:现在A表的最后回复时间(LasyReplyDate) 是段出错了,要用B表来修改A表的lastReplyDate
即要 求出B表中 最近max(ReplyDate) 回复时间 修表A

*/
update A set lastReplyDate=b.ReplyDate
(select TopicID,max(ReplyDate) ReplyDate from b group by TopicID) b where A.TopicID=B.TopicID
zaiai2003 2008-11-17
  • 打赏
  • 举报
回复
几人回答一直,正确。顶!
水族杰纶 2008-11-17
  • 打赏
  • 举报
回复
UPDATE TA SET lastReplyDate=B.ReplyDate FROM (SELECT TopicID,MAX(ReplyDate)ReplyDate FROM TB GROUP BY TOPICID)B
WHERE TA.TOPICID=B.TOPICID
hyde100 2008-11-17
  • 打赏
  • 举报
回复
UPDATE A
SET lastReplyDate =C.ReplyDate
FROM A
LEFT JOIN
(
SELECT TopicID,MAX(ReplyDate ) ReplyDate
FROM B
GROUP BY TopicID
)C ON C.TopicID=A.TopicID
fcuandy 2008-11-17
  • 打赏
  • 举报
回复
UPDATE a SET a.lastReplyDate = md
FROM tableA a
INNER JOIN
(
SELECT topicid,MAX(ReplyDate) md FROM tableB GROUP BY topicid
) b
ON a.topicid=b.topicid

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧