私はこのようなテーブルを持っています:
A
ID_A ID_1 ID_2
1 1 (null)
2 3 (null)
3 7 (null)
B
ID_B ID_1 ID_2
1 (null) 2
2 (null) 4
3 (null) 6
REF
ID_A ID_B
1 2
3 1
refテーブルによると、ID_Aが2のオブジェクトは、ID_Bが1のオブジェクトと同じです。
したがって、次のようにテーブルを更新できるはずです。
A
ID_A ID_1 ID_2
1 1 4
2 3 (null)
3 7 2
実際、このクエリを実行すると、その結果が得られます。
select
A.ID_A, B.ID_1, C.ID_2
from
A, B, REF
where
A.ID_A = REF.ID_A
AND REF.ID_B = B.ID_B
(実際には、内部結合であるためnull行が失われますが、それは重要ではありません。)
私が完全にできないことは、この新しい情報でAを更新することです!更新で「単一行のサブクエリが複数の行を返す」か、マージでクエリが非決定論的であるという素敵な結果が得られます。
私が示したように実際に3つのテーブルがあるとすると、id_2を正しく更新するクエリを作成するにはどうすればよいですか?;