如何通过从第二个表中找到registrationname的registrationid,通过registrationname更新registrationid到第一个表?

时间:2016-02-23 11:07:02

标签: sql sql-server select sql-server-2012

我有两个表名称 Table1 Table2 ,其中所有列都相同。

Table1:RegistrationId,Registration,Amount
Table2:RegistrationId,Registration,Amount.

现在在Table2中我有所有记录和RegistrationId,但是在Table1中我没有RegistrationId所以我只想通过适当的注册名称将适当的registrationId插入到Table1中。

我想从table2中逐个获取一个注册名,然后找到RegistrationId并插入它 RegistrationId到表1中的相应注册名称。

表2

RegistrationId    Registration  Amount
 1                 Abc           100
 2                 pqr           200
 3                 xyz           300
 4                 yyy           300

表1

RegistrationId    Registration  Amount
                  Abc           100
                  pqr           200
                  xyz           300
                  lmn           400
                  uuu           800

预期产出: 表1:

RegistrationId    Registration  Amount
      1            Abc           100
      2            pqr           200
      3            xyz           300
                   lmn           400
                   uuu           800

那怎么办?

1 个答案:

答案 0 :(得分:1)

MERGE INTO Table1
   USING Table2
      ON Table1.Registration  = Table2.Registration 
WHEN MATCHED THEN
   UPDATE 
      SET Table.RegistrationId = Table2.RegistrationId;

UPDATE
    Table1
SET
    Table1.RegistrationId = Table2.RegistrationId
FROM
    Table1
INNER JOIN
    Table2
ON Table1.Registration  = Table2.Registration