You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL跨不同数据库连接两表,对重复ID库存求和并展示唯一ID

在MySQL中实现跨数据库表的库存求和需求

当然可以实现!这需求用MySQL的基础语法就能轻松搞定,我给你拆解下思路和具体代码:

核心思路

我们需要先把两个不同数据库里的products表的所有记录合并到一起,然后对相同ID的库存值进行求和。这里要注意用UNION ALL而不是UNION——因为UNION会自动去重,而我们需要保留所有原始的库存记录来做求和计算,UNION ALL只是单纯合并,效率也更高。

具体SQL代码

-- 合并两个数据库的products表所有记录,再按ID分组求和
SELECT 
    ID, 
    SUM(Stock) AS Stock
FROM (
    -- 从db1取所有产品记录
    SELECT ID, Stock FROM db1.products
    UNION ALL
    -- 从db2取所有产品记录
    SELECT ID, Stock FROM db2.products
) AS combined_products
GROUP BY ID
-- 按ID排序,让结果更符合预期的展示顺序
ORDER BY ID;

执行结果验证

执行上述SQL后,你会得到完全符合预期的结果:

  • ID 1: 10 + 3 = 13
  • ID 2: 20 + 5 = 25
  • ID 3: 30(仅存在于db1)
  • ID 4: 40(仅存在于db2)

小提示

  • 确保两个表的ID和Stock字段类型一致(比如都是INT类型),避免合并时出现类型转换异常;
  • 如果需要筛选特定ID或者库存范围,可以在子查询的SELECT语句后添加WHERE条件,或者在聚合后用HAVING过滤结果。

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:50:55