【发布时间】:2017-10-23 19:31:26
【问题描述】:
我有两个表,两个表的第一列都匹配,我需要 UPDATE TableA 与 TableB 中的所有数据,只有在 TableA.Column1 和 TableB.Column1 匹配的地方。我很难弄清楚如何让它工作...... TableA 有大约 80 多列,TableB 大约有 100 多列。我正在 Microsoft Access 中尝试此操作。
表A
+---------+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | ....... | ColumnX |
+---------+---------+---------+---------+---------+---------+
| 1 | DataA | | DataA | ....... | |
+---------+---------+---------+---------+---------+---------+
| 2 | DataA | | DataA | ....... | |
+---------+---------+---------+---------+---------+---------+
| 3 | DataA | | DataA | ....... | |
+---------+---------+---------+---------+---------+---------+
| 4 | DataA | | DataA | ....... | |
+---------+---------+---------+---------+---------+---------+
| ....... | ....... | ....... | ....... | ....... | ....... |
+---------+---------+---------+---------+---------+---------+
| X | DataA | | DataA | ....... | |
+---------+---------+---------+---------+---------+---------+
表B
+---------+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | ....... | ColumnX |
+---------+---------+---------+---------+---------+---------+
| 1 | | DataB | | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 2 | | DataB | | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 3 | | DataB | | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 4 | | DataB | | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| ....... | ....... | ....... | ....... | ....... | ....... |
+---------+---------+---------+---------+---------+---------+
| X | | DataB | | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
TableA的最终结果
+---------+---------+---------+---------+---------+---------+
| Column1 | Column2 | Column3 | Column4 | ....... | ColumnX |
+---------+---------+---------+---------+---------+---------+
| 1 | DataA | DataB | DataA | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 2 | DataA | DataB | DataA | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 3 | DataA | DataB | DataA | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| 4 | DataA | DataB | DataA | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
| ....... | ....... | ....... | ....... | ....... | ....... |
+---------+---------+---------+---------+---------+---------+
| X | DataA | DataB | DataA | ....... | DataB |
+---------+---------+---------+---------+---------+---------+
到目前为止我尝试过的...
UNION 我很快就放弃了……似乎这只是给了我一个查询,而实际上我需要 UPDATE TableA 和 TableB 中的所有数据
还有……
UPDATE TableA ([Column1],[Column2],[Column3],[Column4], ....... [ColumnX])
SELECT [Column1],[Column2],[Column3],[Column4], ....... [ColumnX]
FROM TableB
WHERE (TableA.Column1 = TableB.Column2)
编辑 1:
试过这个...
运行时错误“3144”:UPDATE 语句中的语法错误
SQL = " UPDATE tbleVendorData AS A " & _
" JOIN tbleOLD AS B " & _
" ON A.[Column1] = B.[Column1] " & _
" SET A.[Column14] = CONCAT(A.[Column14], B.[Column5])"
编辑 2:
【问题讨论】:
-
错误信息是什么?它应该说大约错误所在的位置。
-
哦,你可能需要做 A.[Column14] + B.[Column5] 而不是 CONCAT。我是 MySQL 母语人士!
-
将其从
SET A.[Column14] = CONCAT(A.[Column14], B.[Column5])更改为SET A.[Column14] = (A.[Column14] + B.[Column5]),但我仍然遇到相同的语法错误 -
我已经更新了我的答案以包含可怕的 MSSQL 语法。
-
尝试取出CONCAT,我认为MSSQL只有+运算符。请参阅我的更新答案。哎呀,我把它留在里面了!对不起。现在更新了。我太老了,不能同时处理多项任务。