2014-03-31 99 views
0

我需要通過表b列col3,col4,col5更新表A列col3,col4,col5和col6和col6,但是表b的col5和col6值需要來自表c col1。 意味着表b col5和col6有值,但我需要用表c col1中的值替換它們,並需要相應地更新表col5和col6。 表a和表b具有共同的col1和col2。我正在嘗試這樣的事情。更新表a列使用來自表b的列(表b的2列的值需要從表c取得)

Update a 
a.col3 = b.col3, 
a.col4 = b.col4, 
a.col5 = (select col1 from table_c c where c.col2=b.col5), 
a.col6 = (select col1 from table_c c where c.col2=b.col6) 
from table_A a inner join table_b 
on a.col1=b.col1 and a.col2=b.col2 

有人可以幫助我重新構建上述更新查詢嗎? 提前感謝您的幫助。

+0

您是否還可以將示例數據(更新前的內容以及更新後的內容)? – TTeeple

+0

@Teeple:table a abc def 0 0 -999 -999 table b abc def 1 1 -sa1283 -sa4958 table c -sa1283 1234 -sa4958 3456更新後的表A應該像這張表一樣abc def 1 1 1234 3456希望這個將更清晰 - – user3375857

回答

0

Update a a.col3 = b.col3, a.col4 = b.col4, a.col5 = c.col1, a.col6 = d.col1 from table_A a inner join table_b on a.col1=b.col1 and a.col2=b.col2 inner join table_c c on c.col2 = b.col5 inner join table_c d on d.col2 = b.col6

否則,在子查詢中使用select top 1

+0

嗨,當我使用內部查詢它是從表中的每一行返回重複行。 – user3375857

相關問題