SQL比较两个表并更新其中一个表

Kaz*_*zmi 0 sql-server ssis

我有两个表,A,B.A有两列A1和A2.B有两列B1和B2.在我的情况下,A2和B2中的某些值是相同的,对于这种情况,我想更新A1 = B1.所以当A2 = B2时,A1应取B1的值.我编写了以下查询,但它使表A中的所有值为NULL.任何人都可以帮我修复此问题吗?

Update A
SET A.A1 = (Select B1 from B Where A.A2 = B.B2)
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 7

您可以使用a INNER JOIN来标识应更新的记录:

UPDATE A
SET A.A1 = B.B1
FROM A
INNER JOIN B
    ON A.A2 = B.B2
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这种方法的好处在于,唯一能够更新的记录是那些能够幸存下来的记录INNER JOIN.