gpt4 book ai didi

带有 SELECT 汇总表 2 数据的 MySql UPDATE 语句

转载 作者:行者123 更新时间:2023-11-28 23:56:17 26 4
gpt4 key购买 nike

我有两个表,表 A 有列 token(主键)和 停机时间(INT),表 B 有列 token, status(ENUM 有 3 种状态:active, unstable, inactive ), duration (INT).

我想对表 B 中的 duration 求和,仅针对状态 unstableinactive。然后,将结果分配给表 A 中的 停机时间 列。

例如,

TABLE A
=======

token downtime
--------------------------

bv87pxicnrtk8pw null
v3525kq2kzihb9u null

TABLE B
=======
token state duration
------------------------------------------
v3525kq2kzihb9u active 9
v3525kq2kzihb9u unstable 20
v3525kq2kzihb9u inactive 60
bv87pxicnrtk8pw unstable 11
bv87pxicnrtk8pw active 140
bv87pxicnrtk8pw inactive 40

RESULT
======
token downtime
--------------------------

bv87pxicnrtk8pw 51
v3525kq2kzihb9u 80

我试过了

UPDATE A
SET downtime = (SELECT SUM(duration) FROM B WHERE state != 'active' GROUP BY token)
WHERE A.token = B.token;

但没有成功。

SQL 新手。谁能帮帮我?

最佳答案

在 mysql 中你可以使用 join 和 update something as

update tablea a
join(
select
token,sum(duration) as duration from tableb
where state != 'active'
group by token
)b
on b.token = a.token
set a.downtime = b.duration

关于带有 SELECT 汇总表 2 数据的 MySql UPDATE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31593763/

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