JOINを使ったDELETEの書き方
SELECTとかUPDATE じゃなくてDELETEどうやるんだっけ?ってなったので記録する。
テストデータのイメージ
前回同様のテストテーブル
テストテーブル1 USER_TABLE
テストテーブル2 DEPT_TABLE
まずはSELECTの書き方
user_tableにdept_tableをJOINしてdept_nameを持ってくる。
1 2 3 |
select us.user_id,us.user_name,us.dept_no,dept.dept_name from user_table us inner join dept_table dept on us.dept_no = dept.dept_no |
実行結果
次にUPDATE
user_nameの値をdept_nameにUPDATEする。
1 2 3 4 5 6 |
UPDATE user_table us SET user_name = dept.dept_name FROM dept_table dept WHERE us.dept_no = dept.dept_no --実行結果確認 SELECT * FROM USER_TABLE |
DELETEの書き方
USING句を利用する。今回はdept_tableの総務のdept_noを持つレコードをuser_tableから削除する。
1 2 3 4 5 6 7 |
DELETE FROM user_table us USING dept_table dept WHERE us.dept_no = dept.dept_no and dept.dept_name = '総務' --実行結果確認 SELECT * FROM USER_TABLE |
実行結果 dept_no1のレコードが削除された
WHERE句も使える
今回のような絞り込みが単純なケースはWHERE句で絞り込んだほうがわかりやすいこともあるけど文法を覚えておく必要があるので記録した。
コメント