Mysql更新多张表

标签 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);

我想把所有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/

相关文章:

mysql -/MySql语句(函数)有什么问题

php - MySQL - 插入多个插入,页面停止工作

php、pdo mysql 无法使用内连接插入

mysql - AWS : Best way to automatically create MySQL dump of an RDS instance and store it to S3

mysql - 过滤Mysql表中的相同数据

php - 在显示 mySQL 数据库的时间戳时如何考虑用户时区?

php - 如何加入表格 Codeigniter

MySQL 查询(将 SELECT 更改为 DELETE)

mysql - 将已经格式化的文本插入mysql表中

php - 与 wamp 相比,服务器上的内存使用率较高