来自union的maria更新-或建议

gz5pxeao  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(250)

我有一个mariadb,我正在尝试从另外两个表更新一个表。存档表-时间戳数据截至昨晚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

我已经能够独立地基于摘要表和存档或当前表之间的单个内部联接进行更新,但是我还没有弄清楚如何组合它。
既然archive和current是相同的并且不重叠,那么我应该合并archive和current,然后更新摘要表?我也尝试过执行两个左-外连接并过滤掉空值,但仍然缺少一些东西。
这是我应该使用的子查询吗?
我对这个完全陌生,只需要通过几个项目的查询。我希望有人能帮我指明正确的方向。
谢谢你的建议

wnvonmuf

wnvonmuf1#

从你的问题我不确定你的 Summary 表是否为空。
假设它是空的,您需要填充它,那么 UNION ALL 会做,这不会剥离重复和节省时间(相对于 UNION 在引擎盖下对记录进行排序,然后删除重复项):

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

相关问题