我想要做这样的事情:mysql的更新多个表
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);
,我想添加相同的ID为T1的所有T2的钱,所以我用下面的SQL:
update t1,t2 set t1.money = t1.money + t2.money where t1.id = t2.id
。
,我想在表t1 ID '1' 的钱应该
1 + 2 + 3 = 6
,但实际上它是
1 + 2 = 3;
它似乎总是增加t2的第一行。
mysql> select * from t1;
+----+--------+
| id | money |
+----+--------+
| 1 | 3.0000 |
+----+--------+
我怎样才能由一个SQL得到的
1 + 2 + 3
的值。
有一个SO网站专门针对数据库的问题:) http://dba.stackexchange.com/ – jsj
这是最可能的原因是,查询每个T2的行执行的事实。我认为价值被覆盖。 – Resh32
你应该尝试一个内部查询,我会提供答案。 – Resh32