我想将两列的数据复制到另一个有很多列的表中,并且两个表上都有一个公共列。
这是我的表格:
- Table1
身份证 |第 1 列 |列2
1 | 13 | 12
2 | 8 | 3
3 | 7 | 10
- Table2
身份证 |第 1 列 |列2 |第 3 栏 |第 4 列
1 | 0 | 0 | 0 | 0
2 | 0 | 0 | 0 | 0
3 | 0 | 0 | 0 | 0
我尝试使用此更新查询question https://stackoverflow.com/questions/7268531/how-to-update-column-in-one-table-from-another-if-both-tables-have-a-text-field
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
in the set
声明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)