将多个字段合并为一个并在MySQL中明确标记

时间:2012-06-19 22:09:45

标签: mysql sql case

我正在尝试将多个列值合并为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

我认为这应该是某种类型的案例陈述,但我似乎无法理解它。有什么想法吗?

1 个答案:

答案 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())