mysql中基于子查询的多行更新

mysql中基于子查询的多行更新,mysql,subquery,Mysql,Subquery,下面是一个简化的表结构,用于我尝试执行的操作: T1: id、uid、组、值1 1,1,A,3 2,1,B,4 3,2,A,6 4,2,B,7 现在,我希望同时具有组a和组B的行(与组B关联的值)的任何uid都将添加到与组B关联的行中的值 因此,上述结果将是 1,1,A,7(3+4) 2,1,B,4 3,2,A,13(6+7) 4,2,B,7 也可能存在仅存在A组或B组的UID,在这种情况下,这些行不会发生更改 到目前为止,我所做的是创建了一个查询,其中需要更新的任何行都有一行: id,uid,

下面是一个简化的表结构,用于我尝试执行的操作:

T1:
id、uid、组、值1
1,1,A,3
2,1,B,4
3,2,A,6
4,2,B,7

现在,我希望同时具有组a和组B的行(与组B关联的值)的任何uid都将添加到与组B关联的行中的值

因此,上述结果将是
1,1,A,7(3+4)
2,1,B,4
3,2,A,13(6+7)
4,2,B,7

也可能存在仅存在A组或B组的UID,在这种情况下,这些行不会发生更改

到目前为止,我所做的是创建了一个查询,其中需要更新的任何行都有一行:

id,uid,newval
1,1,7
3,2,13

子查询有点复杂,它连接需要自己更新的表

现在我如何使用它来更新原始表?(或者我该如何以其他方式完成)


谢谢。

如果我想让T1作为MyTableWithLongName的别名,这会是什么结果?如果我需要同时更新两个字段呢?
updatemyTableWithLongName set Value1=T1.Value+T2.Value,Value2=x从MyTableWithLongName作为T1内部连接MyTableWithLongName作为T2在T1.uid=T2.uidwhere T1.group=“A”和T2.group=“B”
如果我想让T1成为MyTableWithLongName的别名,这会是什么?如果我需要同时更新两个字段呢?
updatemyTableWithLongName set Value1=T1.Value+T2.Value,Value2=x从MyTableWithLongName作为T1内部连接MyTableWithLongName作为T2在T1.uid=T2.uidwhere T1.group=“A”和T2.group=“B”
Update T1
set Value1 = T1.Value + T2.Value
from T1 inner join T1 as T2 on T1.uid = T2.uid
where T1.group = "A" and T2.group = "B"