我需要从 MySql 中的几个表构建一个表,我希望它有两列,例如:
------------------ 姓名 | 表名 | ------------------
我正在这样做:
Create table teams as
(
Select name from table1
union
Select name from table2
union
Select name from table3);
如何将每个表名包含为第二列?
谢谢!
包括带引号的字符串文字。确保还给它一个列别名,它将用作结果表中的列名。
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
。