繁体   English   中英

MySQL将两个表的数据与表名合并

[英]MySQL Combine data from two tables with table name

我目前有两个表,table1和table2。 这些表具有相同的结构,但包含不同的数据。

我需要的是一个查询,它将表1和表2的数据组合在一起,并指定数据来自哪个表。

例如,如果table1和table2看起来像:

+------+     +------+
| name |     | name |
+------+     +------+
| Bob  |     | Rob  |
+------+ and +------+

我想要一个结果表:

+------+--------+
| name |  from  |
+------+--------+
| Bob  | table1 |
+------+--------+
| Rob  | table2 |
+------+--------+

我想到的唯一的SQL是:

SELECT name FROM table1 UNION SELECT name FROM table2;

但这不会添加该行来自的表名。

谢谢!

询问

SELECT name, 'table1' as `from`
FROM table1 
UNION ALL 
SELECT name, 'table2' as `from`
FROM table2
;

产量

+------+--------+
| name |  from  |
+------+--------+
| Bob  | table1 |
| Rob  | table2 |
+------+--------+

sqlfiddle

最好不要将“ from”用作结果列,因为它是SQL中的保留字,但是您可以

SELECT name, 'table1' AS [from] FROM table1
UNION ALL
SELECT name, 'table2' AS [from] FROM table2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM