我有2个表结构如下,更新重复记录
表A
表B
我尝试用下面的查询更新TableB
,
update tableB set ID = b.ID from tableB a inner join tableA b on a.prod = b.prod
Prod a
在TableB
是越来越只ID
为1
更新,虽然Prod a
也有ID
S作为2
和TableA
3
。
我们如何修改update
查询以获得TableB
中的所有ID
?
预期输出:
我有2个表结构如下,更新重复记录
表A
表B
我尝试用下面的查询更新TableB
,
update tableB set ID = b.ID from tableB a inner join tableA b on a.prod = b.prod
Prod a
在TableB
是越来越只ID
为1
更新,虽然Prod a
也有ID
S作为2
和TableA
3
。
我们如何修改update
查询以获得TableB
中的所有ID
?
预期输出:
尝试使用MERGE
概念,
MERGE TableB AS T
USING TableA AS S
ON (T.ID = S.ID and T.Prod = S.Prod)
WHEN NOT MATCHED BY TARGET
THEN INSERT(ID, Prod) VALUES(S.ID, S.Prod)
WHEN MATCHED
THEN UPDATE SET T.ID = S.ID, T.Prod = S.Prod
GO
你应该试试这个,
Update TableB set ID = A.ID from TableA A
Inner Join TableB B on B.Prod = A.Prod And B.ID = 0
'MERGE'是一个很酷的答案 –
比其他....快得多!! –
上面的查询似乎没有回答我的问题。它将tableA和tableB合并。我想要的只是从表B中的tableA中带入ID来匹配产品 – Raja
什么是预期的结果? –
http://i.stack.imgur.com/LXYIq.png 我希望得到的结果如图所示 – Raja
为什么突然间有更多的行?一个'UPDATE'语句不应该插入任何额外的行。 –