エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

postgresでテーブルAの値をjoinしてテーブルBに入れたいとき

MySQLならば単純に

 

UPDATE

 tabel_b b

 INNER JOIN

table_a a

 ON b.a_id = a.id

SET

 bcol = a.col

 

みたいなことでできたと思いますが、postgresはダメらしい。

 

ちょっと違う書き方をします。

 

ポイントはFROM句をつかい、WHERE句で結合させること。

 

 

UPDATE

 table_b

SET

 col = a.col

FROM 

 table_a a

WHERE

 a.id = b.a_id

 

こんな感じです。

 

UPDATEでFROM句を使うことがあるんだなぁー、へー。

と言った感じです。

 

ちょい不便ですね、postgreSQL