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

MySQL多表合并咨询:12个月度表如何合并为年度总表?

合并同结构月度数据表为年度总表的解决方案

你用INNER JOIN达不到需求是因为这个操作是横向关联匹配行,而你需要的是纵向堆叠同结构的行数据,这种场景应该用UNION ALL(无需去重时优先用)或UNION(需要自动去重重复行时用)。

基础示例(假设表名为month_1至month_12,列结构完全一致)

SELECT col1, col2, col3 FROM month_1
UNION ALL
SELECT col1, col2, col3 FROM month_2
UNION ALL
SELECT col1, col2, col3 FROM month_3
-- 依次添加剩余9个月度表的查询语句
UNION ALL
SELECT col1, col2, col3 FROM month_12;

优化建议:添加月份标识

如果原表没有自带月份区分字段,建议手动添加,方便后续数据溯源:

SELECT '2024-01' AS data_month, col1, col2, col3 FROM month_1
UNION ALL
SELECT '2024-02' AS data_month, col1, col2, col3 FROM month_2
-- 按月份依次替换日期标识,直到month_12

注意事项

  • UNION ALL不会检查重复行,执行效率比UNION更高,若能确认各月度表无重复数据,优先使用;
  • 所有SELECT语句返回的列数、列数据类型必须完全一致,否则会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:18:11