请求一个SQL语句,查询一个动态表中相应ID对象的最新的记录信息去更新另一个表中相关的字段信息,举例如下:
Table_A (ID, LatestTM, LatestData)
Table_B (ID, TM, Data)
表A中始终存储比如只有三个实体对象对应的最新的数据信息,即表A中始终只有三条记录表示每个对象的最新的数据信息,而表B中是动态增加数据的,存储的是和表A中对应的三个实体对象不断插入的新的时刻的数据信息,现在需要从表B中查询提取每个ID对象对应的最新的记录(TM最新)去对应更新表A中对应的ID对象的信息,即更新最新记录,如果表B中没有对应的ID的记录则不更新。怎么写这个SQL语句比较准确、完整又没有漏洞呢? 谢谢大家。
使用两条sql 语句做更新和插入操作,用sql事务控制也可以
update Table_B set LatestTM=v.TM,LatestData=v.data
from Table_B inner join(
查询语句 select .........
) v on v.ID=Table_B.ID
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和、邀月和雾里小梅花。
如果A表中不止 有 id ,TM , date 还有name adress B表中不确定 是哪 个字段 但可以肯定的是 肯定是A 中的字段 ,如何 更新 A 中的信息?