在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中有多行,会出错…。 |
|
|
|
|
|