編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

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

SQL

UPDATE 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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2007-10-19 (金) 04:47:39 (2500d)