merge into tab1 using (select * FROM tab2 X WHERE X.ROWID = (SELECT MAX(Y.ROWID) FROM tab2 Y WHERE X.ID = Y.ID)) tab2 on(tab1.id=tab2.id) when matched then update set tab1.val = tab2.val where 1=1