【发布时间】:2021-11-23 16:11:01
【问题描述】:
我想要两个在查询中组合两个表,其中结果表有一个额外的类型列来指定值来自哪个表:
table1
| id | name |
|---|---|
| 1 | name1 |
| 2 | name2 |
table2
| id | name |
|---|---|
| 3 | name3 |
| 4 | name4 |
结果
| table | id | name |
|---|---|---|
| table1 | 1 | name1 |
| table1 | 2 | name2 |
| table2 | 3 | name3 |
| table2 | 4 | name4 |
如何实现?
【问题讨论】:
标签: sql sql-server
我想要两个在查询中组合两个表,其中结果表有一个额外的类型列来指定值来自哪个表:
table1
| id | name |
|---|---|
| 1 | name1 |
| 2 | name2 |
table2
| id | name |
|---|---|
| 3 | name3 |
| 4 | name4 |
结果
| table | id | name |
|---|---|---|
| table1 | 1 | name1 |
| table1 | 2 | name2 |
| table2 | 3 | name3 |
| table2 | 4 | name4 |
如何实现?
【问题讨论】:
标签: sql sql-server
使用联合查询:
SELECT 'table1' AS [table], id, name FROM table1
UNION ALL
SELECT 'table2', id, name FROM table2
ORDER BY id;
【讨论】:
是的,联合查询是一个快速的解决方案。如果您不想重复,只需使用UNION,不使用ALL。
【讨论】: