postgresqlでSELECTした結果を利用してUPDATE(更新)をかける方法についてメモメモ。
dbname=# select * from table_a; id | name | ref_id ----+------+-------- 1 | xxx | 10 2 | xxx | 11 3 | xxx | 12 (3 rows) dbname=# dbname=# select * from table_b; id | name ----+------ 10 | aaa 11 | bbb 12 | ccc (3 rows)テーブルはこういう状態だとします。
期待する結果は
dbname=# select * from table_a; id | name | ref_id ----+------+-------- 1 | aaa | 10 2 | bbb | 11 3 | ccc | 12 (3 rows)table_bのnameでtable_aのnameを更新したい場合。
dbname=# UPDATE table_a SET name = foo.name FROM (SELECT * FROM table_b) AS foo WHERE a.ref_id = foo.id;これで出来ます!
以上でぇぇぇぇぇぇぇえぇす。
0 件のコメント:
コメントを投稿