在Oracle中我有两个表。两者都填充了数据并且有timestamp
列。
一个表中的列填充了数据,另一个表没有。但我需要根据另一列的匹配从表中获取另一个表的列中的数据。
每个都有'代码',因此来自一个表的时间戳应该只放在代码匹配的另一个表的时间戳中。
我已经尝试了游标等,但似乎我错过了一些东西。
有什么建议吗?
答案 0 :(得分:2)
听起来你想要一个相关的更新。这将使用destinationTable
的{{1}}更新timestamp_col
的每一行,其中sourceTable
列匹配{。}}。
code
答案 1 :(得分:1)
为了完整起见,我想我会做这样的事情(未经测试),如果目的地有主键或唯一列:
UPDATE (
SELECT d.primary_key AS pk, d.timestamp_col AS dest_col, MAX(s.timestamp_col) AS src_col
FROM dest d
JOIN src s ON d.code = s.code
GROUP BY pk, dest_col
) j
SET j.dest_col = j.src_col