簡體   English   中英

MySQL更新多個表

[英]Mysql update multiple table

我想做這樣的事情:

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的t2貨幣加到t1,所以我使用以下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 |
+----+--------+

我如何獲得價值

1 + 2 + 3

通過一個SQL。

UPDATE t1 SET t1.money = (SELECT SUM(t2.money) + t1.money FROM t2 WHERE t1.id = t2.id)

您應該使用內部查詢:

update t1 set t1.money = (select sum(t1.money) from t1) + (select sum(t2.money) from t2 where t2.id=t1.id)

或類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM