2015-11-19 105 views
-2

我對sql很新,我需要你的幫助來解決這個問題。我有兩張桌子。我想要的是使用另一個表中的數據更新一個表中的行,但只有當值相同時值纔不同。用另一張表的數據更新表格行

像這樣:

表A

ID  DESC 
1  asd 
2  aaa 
3  asda 

表B

ID DESC 
1 asd33 
2 aaa22 
3 asda 

而且我要的是從DESC數據此更新DESC表B中僅如果值是不同的

表B

ID DESC 
1 asd 
2 aaa 
3 asda 
+0

並不比ASDA asda3不同? –

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

+0

是的,這是一個錯字它的asda而不是asda 3 –

回答

1
UPDATE B 
SET B.DESC = A.DESC 
FROM TABLEB B 
LEFT JOIN TABLEA A on A.ID = B.ID 
+0

當你有關於SQL的問題,特別是T-SQL(Microsoft SQL Server)時,我建議你總是從微軟開發者網絡開始。 'UPDATE'語法和示例是[here](https://msdn.microsoft.com/en-us/library/ms177523.aspx)。 –

+0

感謝男人生病了試試這個,在你的劇本上我想要更新的是B表,當desc是不同的時候A –

+1

告訴我一件事情爲什麼要做左邊的加入 –

0

試試這個

Update TableB 
    Set TableB.desc = TableA.desc 
    From TableB INNER JOIN TableA ON TableB.ID = TableA.ID 
    Where TableB.desc NOT IN 
    (Select ISNULL(TableA.desc,'') From TableA) 
相關問題