Sql server 使用表b中的列更新表a列(表b中2列的值需要取自表c)

Sql server 使用表b中的列更新表a列(表b中2列的值需要取自表c),sql-server,Sql Server,我需要通过表b列col3、col4、col5和col6更新表A列col3、col4、col5和col6,但是表b col5和col6的值需要来自表c col1。 意味着表b col5和col6中有值,但是我需要用表c col1中的值替换它们,并需要相应地更新表a col5和col6。 表a和表b有col1和col2的共同点。我正在尝试这样的东西 Update a a.col3 = b.col3, a.col4 = b.col4, a.col5 = (select col1 from tabl

我需要通过表b列col3、col4、col5和col6更新表A列col3、col4、col5和col6,但是表b col5和col6的值需要来自表c col1。 意味着表b col5和col6中有值,但是我需要用表c col1中的值替换它们,并需要相应地更新表a col5和col6。 表a和表b有col1和col2的共同点。我正在尝试这样的东西

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
有人能帮我重新定义上面的更新查询吗? 提前感谢您的帮助。

更新a
a、 col3=b.col3,
a、 col4=b.col4,
a、 col5=c.col1,
a、 col6=d.col1
从表A到A.col1=b.col1和A.col2=b.col2上的内部联接表
c.col2=b.col5上的内部联接表
d.col2=b.col6上的内部联接表


否则,请在子查询中使用
选择top 1

您是否也可以放置示例数据(更新前是什么,更新后是什么)?@tTeple:表a abc def 0 0-999-999表b abc def 1 1-sa1283-sa4958表c-sa1283 1234-sa4958 3456更新表a后应该像这个表a一样,abc def 1 1 1234 3456希望这会更清楚-嗨,当我使用内部查询时,它为表a中的每一行返回重复的行。