表格1:
id name desc ----------------------- 1 a abc 2 b def 3 c adf
表2:
id name desc ----------------------- 1 x 123 2 y 345
在oracle sql中,如何运行一个sql更新查询,可以更新表1与表2的名称和desc使用相同的id?所以我会得到的最终结果是
表格1:
id name desc ----------------------- 1 x 123 2 y 345 3 c adf
问题取自sql update query with data from another table,但专门用于oracle sql。
这被称为相关更新
原文链接:https://www.f2er.com/oracle/209348.htmlUPDATE table1 t1 SET (name,desc) = (SELECT t2.name,t2.desc FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id )
假设连接产生密钥保存的视图,您也可以
UPDATE (SELECT t1.id,t1.name name1,t1.desc desc1,t2.name name2,t2.desc desc2 FROM table1 t1,table2 t2 WHERE t1.id = t2.id) SET name1 = name2,desc1 = desc2