我有一个包含两个表(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
答案 0 :(得分:16)
SELECT ColumnA FROM Table1 UNION Select ColumnB FROM Table2 ORDER BY 1
此外,如果您知道Table1和Table2的内容将从不重叠,则可以使用UNION ALL代替UNION。以这种方式节省一点资源。
- Kevin Fairchild
答案 1 :(得分:3)
你是否关心你是否得到重复?
UNION将比UNION ALL慢,因为UNION将过滤掉重复
答案 2 :(得分:1)
使用UNION运算符:
SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2
答案 3 :(得分:1)
联合答案几乎正确,具体取决于重叠值:
SELECT distinct ColumnA FROM Table1
UNION
SELECT distinct ColumnA FROM Table2
如果表1中出现“d”或表2中出现“c”,则会有多行。
答案 4 :(得分:0)
您可以使用联合选择:
Select columnA from table1 union select columnA from table2
答案 5 :(得分:0)
SELECT Table1.*, Table2.d, Table2.e, Table2.f
FROM Table1 JOIN Table2 ON Table1.a = Table2.a
或者我误解了你的问题?
编辑:看来我做了。
答案 6 :(得分:0)
我相信它是:
SELECT columna FROM table1 UNION SELECT columnb FROM table2;
答案 7 :(得分:0)
在Oracle(至少)中有UNION和UNION ALL,UNION ALL将返回两个集合中的所有结果,即使有重复项,UNION将返回两个集合的不同结果。