SQL:从两个表中选择类似列

时间:2020-03-05 18:47:44  来源:igfitidea点击:

我有一个包含两个表(" 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运算符:

SELECT ColumnA FROM Table1
UNION
SELECT 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;

回答

我们是否在意是否会患上公仔?

UNION会比UNION ALL慢,因为UNION会滤除公仔

回答

在Oracle中(至少)有UNION和UNION ALL,即使有重复,UNION ALL也会返回两个集合的所有结果,因为UNION会返回两个集合的不同结果。

回答

联合答案几乎是正确的,具体取决于重叠的值:

SELECT distinct ColumnA FROM Table1
UNION
SELECT distinct ColumnA FROM Table2

如果" d"出现在表1中或者" c"出现在表2中,则它们将具有多行。