4

我需要从 MySql 中的几个表构建一个表,我希望它有两列,例如:

------------------
姓名 | 表名 |
------------------

我正在这样做:

Create table teams as 
(
Select name from table1
union
Select name from table2
union
Select name from table3);

如何将每个表名包含为第二列?

谢谢!

4

1 回答 1

3

包括带引号的字符串文字。确保还给它一个列别名,它将用作结果表中的列名。

CREATE TABLE teams AS 
  /* Quoted string literal with column alias */
  (SELECT name, 'table1' AS `tablename` FROM table1)
  UNION 
  (SELECT name, 'table2' AS `tablename` FROM table2)
  UNION
  (SELECT name, 'table3' AS `tablename` FROM table3);

请注意,由于您实际上为每一行添加了第二个值,以将其与其他表中可能相似的行区分开来,UNION因此现在是 a 的等效项UNION ALL,并且不会像计划UNION那样对重复行进行重复数据删除。请注意,结果可能与您原来的结果不同UNION

于 2012-10-29T14:32:45.333 回答