作成日:2023-09-06, 更新日:2023-09-06
やりたいこと
下記のようなテーブルで「user_detail.age < 20」を条件に、「user.class = z」に変更したい
■テーブル: user
id | name | class |
---|---|---|
1 | 太郎 | a |
2 | 光子 | a |
3 | 花子 | b |
4 | 亜子 | a |
5 | 三郎 | c |
6 | 次郎 | a |
■テーブル: user_detail
user_id | age |
---|---|
1 | 35 |
2 | 15 |
3 | 31 |
4 | 21 |
5 | 17 |
6 | 27 |
UPDATE文
UPDATE user SET class = 'z' WHERE id IN ( SELECT u.id FROM user u INNER JOIN user_detail ud ON u.id = ud.user_id WHERE ud.age < 20 );
UPDATE文の実行前に…
いきなり上記のUPDATE文を実行でもいいけど、先に対象を確認するならwhere句内のselect文を実行
SELECT u.id FROM user u INNER JOIN user_detail ud ON u.id = ud.user_id WHERE ud.age < 20 ;