2012-10-30 40 views
1

我有兩個表SQL集表1 COL A =表2 COL乙如果表1 COL C =表2 COL d

表1

REF1 REF2 
    A 
    B 
    C 

表2

UPN Filename 
1 A 
2 B 
3 C 

我想在SQL中做的是這個

如果表1 REF2 =表2名然後設置表1 REF1 =表2 UPN

這是SQL我做

UPDATE Table1 
SET  REF1 = Table2.UPN 
FROM  Table1 INNER JOIN Table2 
ON  Table1.REF2 = Table2.FileName 

這一切確實是走在表2 1行中的第一個值,並把它REF1

如該表1下的每一行中是我得到

TABLE1

REF1 REF2 
1 A 
1 B 
1 C 

這就是我想要

TABLE1

REF1 REF2 
1 A 
2 B 
3 C 

任何幫助表示讚賞。

+0

哇什麼可怕的問題標題 –

回答

2

在SQL Server中做到這一點,這裏是語法:

UPDATE t1 
SET t1.REF1 = t2.UPN 
FROM Table1 AS t1 
INNER JOIN Table2 t2 ON t1.REF2 = t2.FileName 
+0

抱歉,我得到我的錯誤裁判開始。我道歉。你應該看到你的答案和我的原始SQL都是一樣的。如果我運行它,我仍然在REF1而不是1,2,3的所有1?你的回答不起作用。 – Varkanoid

+0

@Varkanoid然後你的'Table2'上的數據不是你發佈的數據,因爲這個答案是正確的。很可能你在該表上有相同的'Filename'具有不同的'UPN'值。 – Lamak

+0

你好,它的工作現在。真的很奇怪,因爲某些原因,它只是在我使用的標籤中不起作用,所以我認爲開始一個新鮮的。重新選擇答案,然後關閉標籤。所以我點擊新的查詢貼回來,然後運行它然後它工作! – Varkanoid

相關問題