#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
Ответ №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));