私は3つのテーブルを手に入れました:
t1.columns: a,c
t2.columns: a,b
t3.columns: b,c,d
ここで、t1.c を t3.d で更新する必要があります。しかし、t1.c = t3.c を使用して t3 から t1 を更新することはできません。t3.b = t2.b および t1.a = t2.a も実行する必要があります。
私はこのようなことを試しました:
UPDATE table1 t1
SET t1.c = (select t3.d
from table2 t2, table3 t3
where t2.b = t3.b and t1.a = t2.a)
WHERE EXISTS ( SELECT 1 FROM table2 t2, table3 t3 WHERE t1.c = t3.c and t1.a = t2.a);
このコードはエラー メッセージを生成します: ORA-01427: 単一行のサブクエリが複数の行を返します