簡體   English   中英

從TableB匹配更新TableA

[英]Update TableA from TableB Match

我有兩個表,兩個表的第一列都匹配,我需要使用TableB中的所有數據UPDATE TableA,僅在TableA.Column1TableB.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM