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中,则它们将具有多行。