質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Q&A

解決済

1回答

974閲覧

Oracle Update 副問い合わせの結果にsetして、なぜmst更新がされるのか教えてください。

King_of_Flies

総合スコア382

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

0グッド

0クリップ

投稿2019/08/08 06:35

SQL

1create table HogeMst ( 2 joge char(1) 3 ,hoge char(1) 4 ,CONSTRAINT PK_JOGE1 PRIMARY KEY(joge) 5) 6 7create table HugeMst ( 8 joge char(1) 9 ,huge char(1) 10 ,CONSTRAINT PK_JOGE2 PRIMARY KEY(joge) 11) 12 13insert into HogeMst values('1','a'); 14insert into HogeMst values('1','b'); 15insert into HogeMst values('1','c'); 16 17insert into HugeMst values('1','1'); 18insert into HugeMst values('2','2'); 19insert into HugeMst values('3','3'); 20 21select 22 * 23from 24 HugeMst 25; 26 27select 28 * 29from 30 HogeMst 31; 32 33update 34 ( 35 select 36 m1.hoge 37 , m2.huge 38 from 39 HogeMst m1 40 inner join HugeMst m2 41 on m1.joge = m2.joge 42 ) subQueryResult 43set 44 subQueryResult.hoge = subQueryResult.huge;

上記クエリのupdate文実行で、HogeMst.hogeの値が変わる理由がわかりません。

副問い合わせの取得結果に対して、更新をしても、HogeMstは関係ない気がするのですが、
副問い合わせの取得結果は一時的な表とは違うのでしょうか。

ご回答お待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

oracleでのupdateに関してはインラインビューも更新可能です。
以下に詳しく解説があります。
津島博士のパフォーマンス講座 第30回 UPDATEについて

投稿2019/08/08 07:06

編集2019/08/08 07:09
sazi

総合スコア25186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

King_of_Flies

2019/08/08 08:18

副問い合わせといいつつ実表を参照しているので、updateをすると値が更新されるということで、理解できました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問