![](/img/trans.png)
[英]Access 2003: How to update TableA from TableB based on condition
[英]Update TableA from TableB Match
我有兩個表,兩個表的第一列都匹配,我需要使用TableB中的所有數據UPDATE
TableA,僅在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 |
+---------+---------+---------+---------+---------+---------+
表A的最終結果
+---------+---------+---------+---------+---------+---------+
| 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
...似乎這只是給我一個查詢,在這里我需要使用TableB中的所有數據實際UPDATE
TableA
並且...
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:
以下查詢可能有效:
UPDATE TableA
INNER JOIN TableB
ON(TableA.Column1 = TableB.Column2)
SET
TableA.Column3 = TableB.column3,
...
TableA.Columnx = TableB.columnx
Where TableA.Column1 = TableB.column1;
希望能幫助到你!
玩一下:
UPDATE TableA AS A JOIN TableB AS B ON A.Column1 = B.Column1 SET A.Column1 = CONCAT(A.Column1,B.Column1) ...
或在MSSQL中
UPDATE A SET A.[Column14] = A.[Column14] + B.[Column5] FROM tbleVendorData AS A JOIN tbleOLD AS B ON A.[Column1] = B.[Column1]
如果某個給定字段的值在一個表中沒有,而第二個表中的相應字段中沒有,則可以嘗試使用CONCAT(A.Column1,B.Column1)。 它並不聰明,但是比使用IF容易。
不幸的是,這些建議都不起作用。但是,在進行了深入挖掘之后,以下內容對我有用!
UPDATE TableA, TableB
SET TableA.Column15= [TableB].[Column3]
WHERE (([TableA].[Column1]=[TableB].[Column1]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.