我目前有两个表,table1和table2。这些表具有相同的结构,但包含不同的数据。
我需要的是一个将table1和table2的数据组合在一起的查询,还指定数据来自哪个表。
例如,如果table1和table2看起来像:
+------+ +------+
| name | | name |
+------+ +------+
| Bob | | Rob |
+------+ and +------+
我想要一个结果表:
+------+--------+
| name | from |
+------+--------+
| Bob | table1 |
+------+--------+
| Rob | table2 |
+------+--------+
我想出的唯一一个SQL是:
SELECT name FROM table1 UNION SELECT name FROM table2;
但是这不会添加行来自的表名。
谢谢!
答案 0 :(得分:1)
<强>查询强>
SELECT name, 'table1' as `from`
FROM table1
UNION ALL
SELECT name, 'table2' as `from`
FROM table2
;
<强>输出强>
+------+--------+
| name | from |
+------+--------+
| Bob | table1 |
| Rob | table2 |
+------+--------+
答案 1 :(得分:-1)
最好不要使用'from'作为结果列,因为它是SQL中的保留字,但你可以这样做
SELECT name, 'table1' AS [from] FROM table1
UNION ALL
SELECT name, 'table2' AS [from] FROM table2