首页 新闻 搜索 专区 学院

查询一个表中满足条件的最新记录去更新另一个表中相关的字段信息的SQL语句

0
[待解决问题]

请求一个SQL语句,查询一个动态表中相应ID对象的最新的记录信息去更新另一个表中相关的字段信息,举例如下:

 

 Table_A  (ID,   LatestTM,    LatestData)

 Table_B  (ID,  TM,  Data)

 

表A中始终存储比如只有三个实体对象对应的最新的数据信息,即表A中始终只有三条记录表示每个对象的最新的数据信息,而表B中是动态增加数据的,存储的是和表A中对应的三个实体对象不断插入的新的时刻的数据信息,现在需要从表B中查询提取每个ID对象对应的最新的记录(TM最新)去对应更新表A中对应的ID对象的信息,即更新最新记录,如果表B中没有对应的ID的记录则不更新。怎么写这个SQL语句比较准确、完整又没有漏洞呢?   谢谢大家。

摩根鱼的主页 摩根鱼 | 初学一级 | 园豆:19
提问于:2013-08-17 15:14
< >
分享
所有回答(5)
0

使用两条sql 语句做更新和插入操作,用sql事务控制也可以

雾里小梅花 | 园豆:137 (初学一级) | 2013-08-17 21:39
0

update Table_B set LatestTM=v.TM,LatestData=v.data

from Table_B inner join(

查询语句 select .........

) v on v.ID=Table_B.ID

geass.. | 园豆:1701 (小虾三级) | 2013-08-18 06:46
0
邀月 | 园豆:25354 (高人七级) | 2013-08-19 09:25
0

update Table_A set LatestTM = U.TM, LatestData = U.Data from
(
 select * from Table_B inner join
 ( 
  select MAX(TM) NEWESTTM from Table_B GROUP BY STCD
 )
 V on DRP.TM = V.NEWESTTM
) U WHERE Table_A.ID = U.ID                   

 

菜鸟不懈努力调试, 这样就可以了

A表中假如有三个ID对象,LatestTM,LatestData表示三个对象最新时刻的最新状态信息,其值是由B表中检索更新而来,B表中不断增加的是三个ID对象的最新状态和对应的时刻,通过检索B表中每个ID对象最新时刻的最新数据信息去更新A表。

 

谢谢geass和、邀月和雾里小梅花。

摩根鱼 | 园豆:19 (初学一级) | 2013-08-19 16:26
0

如果A表中不止 有 id ,TM , date  还有name  adress  B表中不确定 是哪 个字段  但可以肯定的是 肯定是A 中的字段 ,如何 更新 A 中的信息? 

十七人 | 园豆:202 (菜鸟二级) | 2017-10-10 15:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册