If this doesn't work
update table1 set val1 = (select val1 from table2 where table1.id = table2.id)
then you may have to pull the values out of the database into a script and then send back down to the database again.
This should just be a maintenance issue or a summary task so shouldn't too much matter if it's not optimised.