2015-09-09 43 views
0

我需要將table2中某行的值(例如Id2 = 2)添加到table1(例如Id = 1)中的一行中。表1在MySQL中添加兩行不同的表格

+---+---+---+---+ 
|Id1| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 2 | 1 | <- updated 
| 2 | 1 | 1 | 0 | 
| 3 | 0 | 0 | 1 | 
| n | 0 | 1 | 1 | 
+---+---+---+---+ 
:有在MySQL數據庫中

表1

+---+---+---+---+ 
|Id1| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 1 | 0 | <- selected row 
| 2 | 1 | 1 | 0 | 
| 3 | 0 | 0 | 1 | 
| n | 0 | 1 | 1 | 
+---+---+---+---+ 

表2

+---+---+---+---+ 
|Id2| A | B | C | 
+---+---+---+---+ 
| 1 | 0 | 1 | 0 | 
| 2 | 0 | 1 | 1 | <- selected row 
| 3 | 1 | 0 | 0 | 
| n | 1 | 1 | 1 | 
+---+---+---+---+ 

結果共有100多個列的是

嘗試了一堆東西,但它沒有奏效。以爲我需要看起來像這樣:

UPDATE table1 
SET (SELECT * FROM table1 WHERE Id=1) = (SELECT * FROM table1 WHERE Id=1) + (SELECT * FROM table2 WHERE Id=2) 

希望你們可以幫我:)。

+0

你的意思是在一個表中100列? OMG數據庫不是電子表格。 – e4c5

+0

@ e4c5它實際上是我在excell/vba中編寫的應用程序,現在是在線版本。似乎mysql不是一個合適的工具,你能推薦別的東西嗎? Redis的? –

+0

Mysql是一個合適的「工具」,它只是如何在RDBMS中構造數據與電子表格非常不同。如果你想保存自然的電子表格,你需要使用一個nosql系統。 – e4c5

回答

0

該語法不起作用。你需要單獨更新每一列。 如果您可以設法在2個表格之間獲得公共密鑰,則可以按照以下語法進行操作。

UPDATE items,month SET items.price=month.price+items.price 
WHERE items.id=month.id; 

這裏進一步參考.. https://dev.mysql.com/doc/refman/5.0/en/update.html

+0

感謝不幸的是只有兩列的列是相同的。看起來我需要做100多個查詢,不是嗎? –

+0

如果你的ID匹配總是像1到2.你可以說ID = ID + 1。那麼你可以只寫如上查詢。如果不是,則必須選擇每個目標列值並更新源表。 – DarkKnight

相關問題