首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合并和添加两个表中的值

合并和添加两个表中的值
EN

Stack Overflow用户
提问于 2009-10-30 11:59:05
回答 5查看 229关注 0票数 2

是否可以手工创建一个在两个表中添加值的查询:

例如,假设您有两个表

代码语言:javascript
运行
复制
id    value
--    -----
a       1
c       2
d       3
f       4
g       5

代码语言:javascript
运行
复制
id     value
--     -----
a        1
b        2
c        3
d        4
e        5

然后,当您“添加”这两个表时,您将得到id匹配的结果。所以是a=1+1=2,它们没有返回相同的结果。所以查询将返回:

代码语言:javascript
运行
复制
id     value
--     -----
a       2
b       2
c       5
d       7
e       5
f       4
g       5
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-10-30 12:02:13

也许是像这样的

代码语言:javascript
运行
复制
select coalesce(t1.id, t2.id) as id, (coalesce(t1.value, 0) + coalesce(t2.value, 0)) as value 
from table1 t1 full outer join table2 t2 on t1.id = t2.id
票数 5
EN

Stack Overflow用户

发布于 2009-10-30 12:14:43

使用:

代码语言:javascript
运行
复制
  SELECT x.id,
         SUM(x.value)
    FROM (SELECT t.id,
                 t.value
            FROM TABLE_1 t
          UNION ALL
          SELECT t2.id,
                 t2.value
            FROM TABLE_2 t2) x
GROUP BY x.id
票数 2
EN

Stack Overflow用户

发布于 2009-10-30 12:36:54

你可以这样做--但其他的答案可能会更快:

代码语言:javascript
运行
复制
SELECT t1.id, t1.value + t2.value AS value
  FROM t1 INNER JOIN t2 ON t1.id = t2.id
UNION
SELECT t1.id, t1.value
  FROM t1
 WHERE t1.id NOT IN (SELECT t2.id FROM t2)
UNION
SELECT t2.id, t2.value
  FROM t2
 WHERE t2.id NOT IN (SELECT t1.id FROM t1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1647946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档