Sql 合并两个没有任何关系的表
我有两张像下面这样的桌子- 表1: 表2: 我想把这两个表结合起来,这样我就能得到下面的结果 结果: 预期结果的列标题为p、Q、R、S和表1中的行以及表2中的行Sql 合并两个没有任何关系的表,sql,Sql,我有两张像下面这样的桌子- 表1: 表2: 我想把这两个表结合起来,这样我就能得到下面的结果 结果: 预期结果的列标题为p、Q、R、S和表1中的行以及表2中的行 如何使用SQL实现这一点?\u由于@AntDC和@Matt和@dududu-Markovitz,更新得更严格、更完整__ 将联合与别名一起使用,如下所示: SELECT A AS P, B AS Q, C AS R, D AS S FROM table1 UNION -- or UNION ALL if you want to keep
如何使用SQL实现这一点?\u由于@AntDC和@Matt和@dududu-Markovitz,更新得更严格、更完整__ 将联合与别名一起使用,如下所示:
SELECT A AS P, B AS Q, C AS R, D AS S
FROM table1
UNION
-- or UNION ALL if you want to keep duplicate rows
SELECT W, X, Y, Z
FROM table2
UNION ALL不会消除重复项
在集合操作联合/交叉/除了别名取自第一个查询当前我只知道一个异常HIVE要求别名对于所有查询都是相同的-我认为这是一个错误
表2共3列
select B as Q, C as R, D as S
from table1
union all
select X,Y,Z
from table2
或
我认为您只需要在第一个select中为列添加别名。另外-如果行相同,则需要UNION ALL。@AntDC我不同意:它将保留第二个select的原始列名称,因此不会给出预期的结果。@AntDC建议适用于mysql、sql server、PostrgeSQL非常肯定它适用于Oracle和一般的所有平台。即使您留下别名,也就是查找OP没有声明删除重复行,所以我也同意您可能需要UNIONALL@AntDC对不起:你说得对。有趣的是,我从来都不知道这种容忍,可能比我最初的SQL技能(从1990年开始)引入得晚!当表2只有3列-X、Y、Z时会发生什么?在这种情况下我也应该使用UNION ALL吗?谢谢您的快速回复。
P Q R S << Column headers
1 2 3 4 << row from table1
5 6 7 8 << row from table2
SELECT A AS P, B AS Q, C AS R, D AS S
FROM table1
UNION
-- or UNION ALL if you want to keep duplicate rows
SELECT W, X, Y, Z
FROM table2
select A as P, B as Q, C as R, D as S
from table1
union all
select W,X,Y,Z
from table2
+---+---+---+---+
| p | q | r | s |
+---+---+---+---+
| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |
+---+---+---+---+
select B as Q, C as R, D as S
from table1
union all
select X,Y,Z
from table2
+---+---+---+
| q | r | s |
+---+---+---+
| 2 | 3 | 4 |
| 6 | 7 | 8 |
+---+---+---+
select A as P, B as Q, C as R, D as S
from table1
union all
select null,X,Y,Z
from table2
+--------+---+---+---+
| p | q | r | s |
+--------+---+---+---+
| 1 | 2 | 3 | 4 |
| (null) | 6 | 7 | 8 |
+--------+---+---+---+