[英]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 |
+------+--------+
最好不要将“ 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.