SQL

在SQL中,如何查找表中的每一行都等于一列,然后再设置另一列彼此相等,从而更新表的每一行

发布于 2021-05-10 21:32:52

所以基本上这是伪代码,但我不知道如何在SQL中执行此操作,请帮忙。

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.col2
        }
    }
}

编辑:好的,让我更具体一些。我们基本上是从休眠序列作为id切换到对id列使用guids。我正在尝试通过使上一个外键列成为临时文件,然后匹配临时列以更新实际列来更新关联的外键。

假设表一具有ID,表二具有一列供这些ID用作外键。我想使用表2中的先前值与表1中的行进行匹配,并在表2中设置键值以与表1的新GUID匹配。

因此表2可能有多行重复的ID,但表1永远不会有重复的ID。如果那有意义的话。

关注者
0
被浏览
90
1 个回答
  • 面试哥
    面试哥 2021-05-10
    为面试而生,有面试问题,就找面试哥。

    在SQL Server中,您可以执行以下操作:

    UPDATE Table_1
    SET Column_2 = t2.Column_2
    FROM Table_1 AS t1
    INNER JOIN Table_2 AS t2 ON t2.Column_1 = t1.Column_1
    

    或类似的东西

    UPDATE Table_1
    SET Column_2 = ( 
        SELECT t2.Column_2
        FROM Table_2 AS t2
        WHERE t2.Column_1 = Table_1.Column_1
    )
    

    当然,如果表_2中有多行,则会出现错误…。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看