gpt4 book ai didi

mysql - 如何使用 INNER JOIN 在 UPDATE 上多次添加值?

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

很抱歉这个问题措辞不佳,但如果不深入了解以下所有细节,我无法完全弄清楚如何措辞。

我有一个表 t,其中包含我正在尝试更新的列 value ...

mysql> select * from t;
+------+-------+
| k | value |
+------+-------+
| 10 | 0.00 |
+------+-------+

...来自表v。表 v 使用 k 作为外键 ...

mysql> select * from v;
+------+-------+
| fk | value |
+------+-------+
| 10 | 4.00 |
| 10 | 5.00 |
+------+-------+

我的理解是,这将是一个带有 INNER JOIN 的相当基本的 UPDATE,如下所示:

mysql> UPDATE t
-> INNER JOIN v on v.fk = t.k
-> SET t.value = t.value + v.value;

我原以为 t.value 是 9.00,但结果是 4.00。

我知道我可以用一个子查询和一个 SUM 来完成它,但这将运行大量数据,所以我宁愿尽可能避免这种情况。有什么办法可以通过内部联接来做到这一点吗?

最佳答案

在子查询中计算结果。

UPDATE  t
INNER JOIN
(
SELECT fk, SUM(value) totals
FROM v
GROUP BY fk
) a ON t.k = a.fk
SET t.value = a.totals

关于mysql - 如何使用 INNER JOIN 在 UPDATE 上多次添加值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14772156/

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