在MySQL中添加两行不同的表

时间:2015-09-09 01:47:36

标签: mysql

我需要将table2中一行的值(例如Id2 = 2)添加到table1中的一行(例如Id = 1)。 MySQL数据库中总共有100多列

表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 |
+---+---+---+---+

结果:table1

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

已经尝试了很多东西,但它没有用。以为我需要看起来像:

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

希望你们能帮帮我:)。

1 个答案:

答案 0 :(得分:0)

语法不起作用。您需要单独更新每列。 如果您可以设法在两个表之间获取公用密钥,则可以按照以下语法进行操作。

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