我有两张这样的table:
Table 1
Type 1 | Type 2 | Type 3 | ...
1 | 3 | 0 | ...
Table 2
Type 1 | Type 2 | Type 3 | ...
3 | 2 | 1 | ...
我想把它们组合成这样一个临时表:
Temporary Table
UID | Type | Table
1 | Type 1 | 1
2 | Type 2 | 1
3 | Type 2 | 1
4 | Type 2 | 1
7 | Type 1 | 2
8 | Type 1 | 2
9 | Type 1 | 2
10 | Type 2 | 2
11 | Type 2 | 2
从本质上讲,表1和表2中的数字是总计,我想在这个临时表中将它们分解成单独的行。
我开始从两个表中进行选择,并将值存储到临时变量中。然后我将遍历每个变量并插入临时表。但我有大约15列每表,必须有一个更简单的方法来做到这一点。我只是不知道是什么。
有人对此有什么见解吗?我对mysql存储过程的了解非常有限。
1条答案
按热度按时间vcirk6k61#
不知道有什么简单的方法。一个选择是有一个数字表。这里有一个快速的方法,以获得1-10在一个小时
common-table-expression
(根据需要更改)。那你就可以了
join
到每个表和每个类型,使用union all
对于每个子集。这是一个简明的版本:演示小提琴