SELECT結果でUPDATE前提テーブル T1 id | num ----+----- 1 | 100 2 | 200 3 | 300 テーブル T2 id | num ----+----- 1 | 1 3 | 3 求めたい結果テーブルT1 id | num ----+----- 1 | 1 2 | 200 3 | 3 SQLUPDATE t1 SET num = a.num FROM (SELECT * FROM t2) a WHERE t1.id = a.id; 注意以下のような相関サブクエリを使ったUPDATEではid 2の行のnumがヌルになってしまう。 UPDATE t1 SET num = ( SELECT num FROM t2 WHERE t2.id = t1.id ); テーブルT1 id | num ----+----- 1 | 1 2 | 3 | 3 |
|