377 :
NAME IS NULL:
oracle 10gのUPDATE文で質問です。
Aテーブル
aaa|ddd
Bテーブル
aaa|bbb
Cテーブル
bbb|ccc
Aテーブルに対して、カラムaaaでBテーブルが紐づき、
Bテーブルに対して、カラムbbbでCテーブルが紐づくとします。
(つまり、Aテーブルのレコード1件は、Bテーブルを経由してCテーブルのレコード1件と紐づく)
ここで、A.ddd = 'X'のとき、C.ccc = 'Y'に更新したいのですが
下記の文であってますでしょうか?
また、もっと効率のいい方法はありますでしょうか?
update C set C.ccc = 'Y' where C.bbb in
( select B.bbb from B where B.aaa in
( select A.aaa from A where A.ddd = 'X')
)