我有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'語句不應該插入任何額外的行。 –