回答

收藏

在SQL在中间,如何找到表中的每一行都等于一列,然后设置另一列相等,以更

技术问答 技术问答 288 人阅读 | 0 人回复 | 2023-09-13

所以这基本上是伪代码,但我不知道该怎么办SQL请帮忙。$ @* L; b7 H1 X
for each row in table1{    loop through each row in table 2 {          if table1's row.column 1 = table2's row.column 2 for this row                set table1's row.col2 = table2's row.col           }编辑:好的,让我更具体。我们基本上从休眠序列开始id切换到对id列使用guids。我试图将最后一个外键列作为临时文件,然后匹配临时列以更新实际列以更新相关外键。$ `; V- w; E! |! I& R: D
假设表一有ID,表二有一列供这些ID用作外键。我想使用表2中的前值与表1中的行匹配,并在表2中设置与表1中的新键值GUID匹配。, d- G- D: H5 ?5 `' M; I& C7 n
因此,表2可能有多行重复ID,但表1永远不会重复,但表1永远不会重复ID。若有意义。
) |4 F$ C0 s& F+ V# d2 d                                                                + r; W  t0 W% p. n
    解决方案:                                                               
3 ]2 Q+ J/ Z' X! M) J- c% H6 W                                                                在SQL Server您可以执行以下操作:$ `; D$ A' A5 c
UPDATE Table_1SET Column_2 = t2.Column_2FROM Table_1 AS t1INNER JOIN Table_2 AS t2 ON t2.Column_1 = t1.Column_1或者类似的东西$ V3 Z- z3 o* E5 R! A  ?- j/ t
UPDATE Table_1SET Column_2 = (     SELECT t2.Column_2    FROM Table_2 AS t2    WHERE t2.Column_1 = Table_1.Column_1)当然,如果表_2中有多行,会出错…。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则