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

时间:2011-06-07 18:22:27

标签: mysql subquery

这是我正在尝试做的简化表格结构:

T1:
ID,UID,组,值1
1,1,A,3个
2,1,B,4个
3,2,A,6个
4,2,B,7

现在我希望任何同时具有A组和B组行的uid将与B组相关联的值添加到与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

子查询有点复杂,并且需要使用它自己更新表。

现在如何使用它来更新原始表? (或者我怎么做其他方式)?

感谢。

1 个答案:

答案 0 :(得分:1)

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"