「テーブルを結合して、レビューがある商品だけ更新したい」 本と本を借りている人(1対1)、商品と商品へのレビュー(1対多)みたいにテーブル結合を使ったUPDATE文を実行したいとします。 こういう時、posgresqlではJOINを使うとエラーが出る。 公式リファレンス 解決する方法として ・FROMで結合先テーブルを指定する方法 ・サブクエリを使う方法 があるので、それぞれ紹介します。 1対1編 FROM句を使う FROM句で結合先テーブルを指定、 結合後のレコードに対してUPDATEします。 UPDATE products SET popular_flag = true FROM reviews -- 実質 INNER JOIN と同じ WHERE products.id = reviews.product_id; -- ONと同じ これにより、reviewsが紐づくproductsの
![[postgres] posgreではテーブル結合してUPDATEする時はJOINを使わない - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/8e1cd669004c0ebad9cf6569d46b1245edeb6b60/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JTVCcG9zdGdyZXMlNUQlMjBwb3NncmUlRTMlODElQTclRTMlODElQUYlRTMlODMlODYlRTMlODMlQkMlRTMlODMlOTYlRTMlODMlQUIlRTclQjUlOTAlRTUlOTAlODglRTMlODElOTclRTMlODElQTZVUERBVEUlRTMlODElOTklRTMlODIlOEIlRTYlOTklODIlRTMlODElQUZKT0lOJUUzJTgyJTkyJUU0JUJEJUJGJUUzJTgyJThGJUUzJTgxJUFBJUUzJTgxJTg0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01OTE4YTBhMmNiNjE4ZjA0MDlkYmMxYzdhNWNmZTQwZg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwaGlybzU5NjMmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWNjYTRmYWUxZTE0NzMwYWNlMjVhMDU1OTZhNGM4ZjFl%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D1a66a1e98197c3ead7f0589cb485ed4b)