SQL Query从不同的表更新列值

时间:2016-06-06 05:43:51

标签: mysql sql

Table Image

我有两张桌子A& B.加入这两个表的关键是A.AccointID = B.ItemID,我想将B.Value列更新为null,如果ID匹配则更新表A中的值。

表A

    AccountID              Value
   -----------------------------------------
    11DHEC14               51326SVC1565_AG1          
    11DHEC14               51326HI1053_AG1        
    11DHEC14               51326HI2143_AG1

表B

 ITEM ID                 Value
   -------------------------------------------
    11DHEC14                51326_HI2143_AG1
    11DHEC14                513262143QQQ

输出

    ITEM ID         Value
   ----------------------------------------  
    11DHEC14        51326SVC1565_AG1
    11DHEC14        51326HI1053_AG1
    11DHEC14        51326_HI2143_AG1

我尝试加入表格,但是我获得了更多行,我也提到了输出作为参考。请帮助!!

1 个答案:

答案 0 :(得分:0)

首先在两个表之间建立关系,然后更新列。虽然您没有在表之间指定所需的关系类型,但您可以通过应用适当的where条件来优化结果集。

update A
set B.Value = A.Value 
from A inner join B
on  A.AccountID = B.ItemID
where A.Value = '51326SVC1565_AG1' and B.Value = '51326_HI2143_AG1';