0

我正在尝试将多个列值组合为 1,然后使用汇总表的新列清楚地标记它们。请参阅下面的示例。

例子:

(select
  id, size, size2
from
  table1
where
  date = curdate()
)a

union all

(select
  id, size, size2
from
  table2
where
  date = curdate()
)b

输出:

身份证尺寸 size2

1 23 47
2 25 33

我如何将 size 和 size2 合并到一个列中,并有另一个字段来标记它们?

输出如下所示:

ID 值类型

1 23 尺寸

2 47 尺寸2

3 25 尺寸

4 33 尺寸2

我在想这应该是某种类型的案例陈述,但我似乎无法完全理解它。有任何想法吗?

4

1 回答 1

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())
于 2012-06-19T22:28:08.873 回答