Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で登壇経験ありです。海外での登壇も短いながらあり。デブサミ2017では公募スピーカー1位でした!

update文にfrom句!?

こんな感じのSQL文があった。

UPDATE table_a
SET    column_a = 1
FROM
       ( SELECT column_b,
                column_c,
                column_d
         FROM   table_b
       ) table_b
WHERE  column_a = 2
   AND table_b.column_b   = table_a.column_b
   AND table_b.column_c   = table_a.column_c
   AND table_b.column_d   = table_a.column_d

なんじゃこりゃ!?っと思ったけど、PostgreSQLの非標準拡張らしい。

UPDATE table SET column = expression [, ...] [ FROM fromlist ] [ WHERE condition ]

fromlist A Postgres non-standard extension to allow columns from other tables to appear in the WHERE condition. WHERE 条件に他のテーブル上のカラムを指定できるように する Postgresの非標準的拡 張。