连接具有相同列号和名称的两个表

时间:2014-06-24 07:31:24

标签: mysql sql

我有两张桌子:

TABLE_A

head1 head2
foo   case1
bar   case2

和TABLE_B

head1 head2
hux   case1
pix   case2
ilf   case1

我想要做的是创建此表:

head1 head2
foo case1
bar case2
hux case1
pix case2
ilf case3

即只是组合它们,而不删除任何冗余。

这样做的正确命令是什么? 我试过这个,但没有给出理想的结果。

CREATE TABLE TABLE_AB(head1 text, head2 text)
(SELECT * FROM TABLE_A)
UNION ALL
(SELECT * FROM TABLE_B)

2 个答案:

答案 0 :(得分:1)

您可以将列名更改为所需的名称。

CREATE TABLE TAB1 (ID number, NAME VARCHAR2(10));
CREATE TABLE TAB2 (ID number, NAME VARCHAR2(10));

INSERT INTO TAB1 VALUES (1, 'AAA');
INSERT INTO TAB1 VALUES (2, 'BBB');
INSERT INTO TAB1 VALUES (3, 'CCC');

INSERT INTO TAB2 VALUES (1, 'EEE');
INSERT INTO TAB2 VALUES (4, 'FFF');

CREATE TABLE TAB AS ((SELECT * FROM TAB1) UNION ALL (SELECT * FROM TAB2));

答案 1 :(得分:1)

您可以省略联合部分周围的括号。另外,对于create table ... select,您没有指定列定义。

create table Table3
select  *
from    Table1
union all
select  *
from    Table2

Example at SQL Fiddle.