我想将两列的数据复制到另一个具有许多列的表中,并且两个表上都有一个公用列。
这是我的桌子:
我试图从这个问题中使用这个更新查询
UPDATE table2 a,table1 b SET a.col1 = b.col1, a.col2 = b.col2, a.col3 = a.col3 + b.col1, a.col4 = a.col4 + b.col2 WHERE a.ID = b.ID
但它给
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'a'.
无论如何有可能做到这一点?抱歉,如果我没有用一种好的方法来写表,但是看来stackoverflow不会创建表。
您的语法对于MySQL来说看起来是正确的,但是最好写成:
UPDATE table2 a join table1 b on a.ID = b.ID SET a.col1 = b.col1, a.col2 = b.col2, a.col3 = a.col3 + b.col1, a.col4 = a.col4 + b.col2;
对于SQL Server,语法为:
UPDATE a SET col1 = b.col1, col2 = b.col2, col3 = a.col3 + b.col1, col4 = a.col4 + b.col2 FROM table2 a join table1 b on a.ID = b.ID;
在SQL Server中的错误可能是在桌子上后,或在别名a的set语句。
a
set