【问题标题】:Maria update from union - or suggestion来自工会的玛丽亚更新 - 或建议
【发布时间】:2019-02-24 02:52:36
【问题描述】:

我有一个 Maria DB,我正在尝试从另外两个表中更新一个表。 存档表 - 昨晚 00 UTC 的时间戳数据。 当前 - 从 00 到现在的时间戳数据。 我想将两个表中的结果复制到汇总表的列中。

Archive Table 
time|result
1   A
2   B
3   C
4   D
5   E

Current table:
time|result
6   1
7   2
8   3
9   4
10  5

Summary Table:
time|result
1   A   
2   B
3   C
4   D
5   E
6   1
7   2
8   3
9   4
10  5

我已经能够基于汇总表与存档或当前表之间的单个 INNER JOIN 独立进行更新,但我无法弄清楚如何组合它。

由于存档和当前是相同的并且不重叠,看来我应该将存档和当前合并,然后更新汇总表?我也尝试过执行两个 LEFT OUTER JOINS 并过滤掉 NULL,但我仍然缺少一些东西。

这是我应该使用子查询的东西吗?

我对此完全陌生,只需要通过几个项目查询。我希望有人可以帮助我指出正确的方向。

感谢您的建议

【问题讨论】:

    标签: mysql mariadb mariasql


    【解决方案1】:

    我不确定您的Summary 表是否为空。

    假设它是空的并且您需要填充它,那么 UNION ALL 会这样做,它不会删除重复项并节省时间(与 UNION 相比,它在后台对记录进行排序然后删除重复项):

    insert into summary_table (time, result)
    select time, result from archive_table
    union all
    select time, result from current_table
    

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 1970-01-01
      • 2022-06-15
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-13
      • 2014-11-30
      • 1970-01-01
      相关资源
      最近更新 更多