この2つを使ってquerys:
これにより、結合とフィルタリングが行われ、両方のテーブルに存在する値が得られるため、更新を行うだけです
Update t1 set t1.col1 = t2.col1
from t1 inner join t2 on t1.id = t2.id
これにより結合とフィルタリングが行われ、t1 ではなく t2 にある値が得られるため、挿入を行うだけです。
insert into t1 select t2.id, t2.col1
from t2 left outer join t1 on t2.id = t1.id where t1.id IS NULL
アップデート:
ここからわかるように、MySQL はこれに別のシンタックスを使用します。したがって、上記のクエリの代わりにこれを使用してクエリを実行できます。
UPDATE t1 temp1
INNER JOIN t2 temp2
ON temp1.id= temp2.id
SET temp1.col1= temp2.col1
ただし、概念は同じです (構文が異なるだけです)。INNER JOIN は一致/結合するフィールドのみを使用するため、Where は必要ありません。