admin

更新另一个表中的数据

sql

我需要更新另一个表中的一些数据。

我只想简单地将数据从表1的col1到表2的col1中,行位于相同的位置,因此确实没有需要进行任何ID比较的工作。

我怎样才能做到这一点?

-----------------------------------------
Db1.Table1 (Take yearModel from this table to update Table3)
-----------------------------------------
imgid          | int | PK |
yearModel      | int |
-----------------------------------------


-----------------------------------------
Db2.Table2 (Go by this table to update Table3)
-----------------------------------------
imgid          | int | PK |
uploadId       | int | FK (With table3.uploadId) |
------------------------------------------

------------------------------------------
Db2.Table3 (Update this table with the yearModel from table1)
-------------------------------------------
uploadId        | int | PK |
uploadYearModel | int |

抱歉,我的数据库diagaram“ thingy”由于一些奇怪的原因而崩溃了。

我还应该提到Table1位于另一个数据库中。我不确定这是否重要..但是很好.. :)

提前致谢!


阅读 163

收藏
2021-07-01

共1个答案

admin

如果两个表中都有一个“公共键列”,并且此键列在两个表中具有相同的值(它们在两个表中引用相同的行),则下面的查询应该起作用:

UPDATE  Table1
SET     Column1 = t2.Column1
FROM    Table2 t2 INNER JOIN Table1 t1 ON t2.KeyColumn = t1.KeyColumn

编辑:

UPDATE Table3 
SET    uploadYearModel = t1.yearModel 
FROM   Table1 t1
       INNER JOIN Table2 t2 ON t2.imgid = t1.imgid
       INNER JOIN Table3 t3 ON t3.uploadId = t2.uploadId
2021-07-01