我有一个包含两个表Table1
和Table2
的数据库。它们都有一个共同的列[ColumnA]
,类型为nvarchar
。
我该如何从这两个表中选择这个列,并将其作为单个列返回到结果集中?
所以我想要的是类似于:
ColumnA in Table1:
a
b
c
ColumnA in Table2:
d
e
f
Result set should be:
a
b
c
d
e
f
我有一个包含两个表Table1
和Table2
的数据库。它们都有一个共同的列[ColumnA]
,类型为nvarchar
。
我该如何从这两个表中选择这个列,并将其作为单个列返回到结果集中?
所以我想要的是类似于:
ColumnA in Table1:
a
b
c
ColumnA in Table2:
d
e
f
Result set should be:
a
b
c
d
e
f
SELECT ColumnA FROM Table1 UNION Select ColumnB FROM Table2 ORDER BY 1
此外,如果你确定Table1和Table2中的内容永远不会重叠,可以使用UNION ALL替代UNION。这样可以节省一些资源。
-- Kevin Fairchild
你是否在意是否会得到重复项?
UNION 操作比 UNION ALL 操作更慢,因为 UNION 会筛选掉重复项。
联合答案基本正确,取决于重叠值:
SELECT distinct ColumnA FROM Table1
UNION
SELECT distinct ColumnA FROM Table2
Select columnA from table1 union select columnA from table2
SELECT Table1.*, Table2.d, Table2.e, Table2.f
FROM Table1 JOIN Table2 ON Table1.a = Table2.a
还是我误解了你的问题?
编辑:看起来我确实误解了。
我相信是这样的:
SELECT columna FROM table1 UNION SELECT columnb FROM table2;