Объединение двух таблиц с одинаковым номером и именем столбца

#mysql #sql

#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)
  

Ответ №1:

Вы можете опустить скобки вокруг частей объединения. Кроме того, для create table ... select , у вас нет указать определения столбцов.

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

Пример в SQL Fiddle.

Ответ №2:

Вы можете изменить имена столбцов на нужные.

 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));