gpt4 book ai didi

MySQL:在一个查询中使用另一表中的值多次更新同一行

转载 作者:行者123 更新时间:2023-11-29 12:51:34 24 4
gpt4 key购买 nike

给定以下表结构:

T1:

id a
1 1
2 2
3 3

T2:

id t1_id b
1 1 1
2 1 2
3 2 3

我需要将 t2.b 的值添加到 t1.a 的值,其中 t2.t1_id = t1.id

使用如下连接进行的简单更新不起作用:

UPDATE t1
JOIN t2
ON t2.t1_id = t1.id
SET t1.a = t1.a + t2.b
WHERE t2.id IN(1,2)

预期 T1 结果(将 1 和 2 添加到 t1.a = 1;将 3 添加到 t1.a = 2):

id a
1 4
2 5
3 3

实际T1结果(仅将1加到t1.a = 1;将3加到t1.a = 2):

id a
1 2
2 5
3 3

目前,我正在查看一个选择,它使用 group by 计算要添加的值的总和,然后将该结果集加入到更新中......这似乎对于如此简单的事情来说就像是矫枉过正!有人有一个优雅且高效的解决方案吗?

最佳答案

很快就想到了这个。

UPDATE T1 AS t
JOIN (
SELECT
t1_id, SUM(b) AS sum_total
FROM
T2
WHERE
t1_id IN (1, 2)
GROUP BY
T2.t1_id
) AS t2 ON t.id = t2.t1_id
SET t.a = t.a + t2.sum_total;

关于MySQL:在一个查询中使用另一表中的值多次更新同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24639600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com