[PostgreSQL]UPDATEとDELETEでのJOIN
UPDATE文。SETで指定するカラム名にエイリアス名を付けるとエラーになる
UPDATE hoge H SET val = 'fuga' FROM piyo P WHERE H.code = P.code --joinの条件部 AND P.piyoyo= 'XXX'
DELETE文。
DELETE FROM hoge H USING piyo P WHERE H.code = P.code AND P.piyoyo = 'XXX'
Postgreのバージョンによってはエイリアスがつけられないらしい。(8.1以前)
参考:http://d.hatena.ne.jp/hhelibex/20110509/1304969768
SQL Serverの場合はUPDATEもDELETEも同じようにjoinが書けて綺麗。
UPDATE H SET val = 'fuga' FROM hoge H JOIN piyo P ON H.code = P.code WHERE P.piyoyo = 'XXX'