使用哪个 MYSql Join - 我有 12 个表,一年中的每个月 1 个,我想将它们全部加入以拥有全年的 1 个表

问题描述 投票:0回答:1

我只想拥有 1 个包含全年数据的大表,这样我就可以同时操纵全年,而不必重复相同的过程 12 次。

我认为这将是一个简单的内部联接,但这只是复制彼此相邻的行(例如一月和二月),而不是堆叠到各自的列中。所有列都完全相同。

sql mysql join mysql-workbench
1个回答
0
投票

我对你在做什么几乎一无所知,但是 - 对我来说 - 数据模型看起来错误。首先应该只有一个表,而日期列将用于区分不同的月份。此外,如果您希望使用全年的数据 - 我希望您不会为明年(以及未来的每一年)创建另一组 12 个表。

无论如何:假设表的描述是相同的,然后您可以使用并集运算符将所有数据放在一起。不过,不要在以后要编写的每个查询中执行此操作,而是考虑创建一个视图,例如

create view v_data as
select id, name, address, month, amount from january
union all
select id, name, address, month, amount from february
union all
...
select id, name, address, month, amount from december;

然后您只需在查询中使用该视图,例如

select sum(amount)
from v_data
where month in (1, 3, 8)
© www.soinside.com 2019 - 2024. All rights reserved.