我想做这样的事情:
create table t1 (id varchar(20) NOT NULL default '', money decimal(20,4) NOT NULL default '0');
create table t2 (id varchar(20) NOT NULL default '', money decimal(20,4) NOT NULL default '0');
insert into t1 values('1',1);
insert into t2 values('1',2);
insert into t2 values('1',3);
我想把所有t2的相同id的钱都加到t1,所以我使用下面的sql:
更新 t1,t2 设置 t1.money = t1.money + t2.money 其中 t1.id = t2.id
。
我认为表t1中id'1'的钱应该是
1 + 2 + 3 = 6
但实际上是
1 + 2 = 3;
似乎总是添加 t2 的第一行。
mysql> select * from t1;
+----+--------+
| id | money |
+----+--------+
| 1 | 3.0000 |
+----+--------+
如何获取
的值1 + 2 + 3
通过一个sql。
最佳答案
UPDATE t1 SET t1.money = (SELECT SUM(t2.money) + t1.money FROM t2 WHERE t1.id = t2.id)
关于Mysql更新多张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259068/