如何使用第四个 table 的值更新与两个 table 连接的 oracle table?
How to update an oracle table joined with two tables with values from a fourth table?
我有一个主要的 table (T1),它将与两个 tables(T2 和 T3)连接,并且需要一种方法来用另一个 [= 的值更新 T1 的一列18=]。我似乎找不到准确执行更新操作的更新语句。
SELECT
T1.VALUE --This value to be updated as New_value from New_table
FROM
TABLE1 T1, TABLE2 T2, TABLE3 T3
WHERE
T1.VALUE = 'Out_dated value' --This value to be updated from New_table
AND T1.VA_ID=T2.VA_ID
AND T1.SI_ID=T3.SI_ID;
如果您列出一些示例数据和预期结果,将会有所帮助。但我想你想要这样的东西:
update table1 t1
set t1.value = (select new_value from new_table where old_value = t1.value)
where exists (SELECT 1
FROM
TABLE2 T2, TABLE3 T3
WHERE T1.VA_ID=T2.VA_ID
AND T1.SI_ID=T3.SI_ID)
您没有显示 NEW_TABLE
的列名称,我在这里假设它们是 NEW_VALUE
和 OLD_VALUE
。
我有一个主要的 table (T1),它将与两个 tables(T2 和 T3)连接,并且需要一种方法来用另一个 [= 的值更新 T1 的一列18=]。我似乎找不到准确执行更新操作的更新语句。
SELECT
T1.VALUE --This value to be updated as New_value from New_table
FROM
TABLE1 T1, TABLE2 T2, TABLE3 T3
WHERE
T1.VALUE = 'Out_dated value' --This value to be updated from New_table
AND T1.VA_ID=T2.VA_ID
AND T1.SI_ID=T3.SI_ID;
如果您列出一些示例数据和预期结果,将会有所帮助。但我想你想要这样的东西:
update table1 t1
set t1.value = (select new_value from new_table where old_value = t1.value)
where exists (SELECT 1
FROM
TABLE2 T2, TABLE3 T3
WHERE T1.VA_ID=T2.VA_ID
AND T1.SI_ID=T3.SI_ID)
您没有显示 NEW_TABLE
的列名称,我在这里假设它们是 NEW_VALUE
和 OLD_VALUE
。