假设我有以下表格和值:
Table1
------------------------
ID | Value
------------------------
2 | asdf
4 | fdsa
5 | aaaa
Table2
------------------------
ID | Value
------------------------
2 | bbbb
4 | bbbb
5 | bbbb
我想Table2
使用Table1
它们各自的ID来更新所有值。
我知道我可以执行以下操作:
UPDATE Table2
SET Value = t1.Value
FROM Table2 t2
INNER JOIN Table1 t1 on t1.ID = t2.ID
但是,如果Table1
并且Table2
实际上是带有条件的选择语句,我该怎么办?如何修改SQL语句以考虑到这一点?
这是通常在Oracle中完成更新查询的方式。Oracle没有UPDATE FROM
选择:
UPDATE table2 t2
SET t2.value = ( SELECT t1.value FROM table1 t1
WHERE t1.ID = t2.ID )
WHERE EXISTS ( SELECT 1 FROM table1 t1
WHERE t1.ID = t2.ID );
该WHERE EXISTS
子句将确保仅table1
更新具有相应行in的行(否则,将更新其中的每一行table2
;没有相应行的那些行将table1
被更新为NULL
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句