gpt4 book ai didi

Mysql - 构建不同表的值之和

转载 作者:行者123 更新时间:2023-11-29 07:40:50 25 4
gpt4 key购买 nike

假设我们有两个表 taba 和 tabb

CREATE TABLE `taba` (
`id` INT NOT NULL,
`value` FLOAT NULL,
PRIMARY KEY (`id`));

CREATE TABLE `tabb` (
`id` INT NOT NULL,
`value` FLOAT NULL,
PRIMARY KEY (`id`));

我想使用适用于任何星座的查询来构建相同 ID 的总和。这通常是指 MySql 中缺少 FULL OUTER JOIN 的问题,可以使用 UNION 解决方法来解决

CREATE OR REPLACE VIEW `sum` AS 
SELECT a.id, a.`value` + COALESCE(b.`value`,0) AS `mysum`
FROM taba a
LEFT JOIN tabb b ON a.id=b.id
UNION
SELECT b.id, COALESCE(a.`value`,0) + b.`value` AS `mysum`
FROM tabb b
LEFT JOIN taba a ON a.id=b.id

让我们以简短的形式记下这一点

taba + tabb

是否有一个普遍有效的 cooking 接受超过两个加数,即

taba + tabb + tabc

还是必须用“虚拟括号”的方式来解决?

(taba + tabb) + tabc

或者对于任意数量的被加数是否有更好的方法?

编辑:一个想法可能是跳过 UNION 构造并使用“something”(子查询?),它提供所有 ID 的并集和 0 作为第一个被加数的值。在这种情况下,COALESCE AND LEFT JOIN 就足够了。

子查询不处理 MySql 中的 View ,但这可以解决。

最佳答案

为什么不

select id,sum(value)
from (
select id, value from taba
union all
select id, value from tabb) t
group by id

如果您有多个表可以选择相同的格式,只需将它们放入子子句中并使用 union all 将它们全部合并在一起。

关于Mysql - 构建不同表的值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114941/

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