我正在尝试将多个列值合并为1,然后使用新列清楚地标记它们以用于汇总表。请参阅下面的例子。
示例:
(select
id, size, size2
from
table1
where
date = curdate()
)a
union all
(select
id, size, size2
from
table2
where
date = curdate()
)b
输出:
ID尺寸size2
1 23 47
2 25 33
我如何将size和size2组合成一列,还有另一个标记它们的字段?
输出看起来像这样:
ID值类型
1 23尺寸
2 47 size2
3 25尺寸
4 33 size2
我认为这应该是某种类型的案例陈述,但我似乎无法理解它。有什么想法吗?
答案 0 :(得分:1)
你可以写一个4部分联盟。新的ID从table1 / 2.ids中交错:
(SELECT id*2+0, size, 'size' FROM table1 WHERE date = curdate())
UNION ALL
(SELECT id*2+0, size2, 'size2' FROM table1 WHERE date = curdate())
UNION ALL
(SELECT id*2+1, size, 'size' FROM table2 WHERE date = curdate())
UNION ALL
(SELECT id*2+1, size2, 'size2' FROM table2 WHERE date = curdate())