Sql 合并两个没有任何关系的表

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

我有两张像下面这样的桌子-

表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 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 |
+--------+---+---+---+