2015-03-27 2 views
0

У меня есть две таблицы, и я хочу добавить их в новую таблицу. Позвольте мне проиллюстрировать пример.Добавление двух таблиц в SQL

Table A : (A1,A2,A3,A4) 
Table B : (A1,A2,B1,B2,B3) 
Merged Table : (A1,A2,A3,A4,B1,B2,B3) 

Я не хочу, чтобы присоединиться таблицы просто хотите добавить их rows.So если таблица А есть запись с (1.2.3.4) и таблицы B есть запись (1, 2,7,8,9). Итоговая таблица будет иметь два ряда:

(1,2,3,4,NULL,NULL,NULL) 
(1,2,NULL,NULL,7,8,9) 

В настоящее время я делаю это в лабиринте; создавая таблицу с отдельными столбцами из обеих таблиц, а затем вставляя необходимые столбцы из обеих таблиц. Это работает, но ужасно грязно и подвержено ошибкам.

Есть ли способ сделать это иначе, чем этот процесс? Количество столбцов также велико.

+0

насчет наследования? –

+0

Наследование? Извините, я этого не понял. Как здесь наследуется наследование? – Tusharshar

+0

Возможно, я не понял, извините. В вашем примере, где вы указываете talble a и tableB, A1, A2, ecc ... - значения или имена столбцов? –

ответ

0

Это немного неясно, что вы имеете в виду с «имеющие различные столбцы», но это то, что я думаю, вы хотите:

insert into tableC 
select a1, a2, a3, a4, NULL, NULL, NULL from tableA 
union all 
select a1, a2, NULL, NULL, b1, b2, b3 from tableB 

Т.е. вставьте в новую таблицу (выше называемую tableC), все строки из таблицы A и все строки из таблицыB.

1

вам нужен inner join с union:

SELECT A.A1, A.A2, A.A3,A.A4, NULL, NULL, NULL 
From  TableA A 
JOIN  TableB B ON (A.A1=B.A1 AND A.A2=B.A2) 
UNION 
SELECT B.A1, B.A2, NULL, NULL, B.B1, B.B2, B.B3 
From  TableA A 
JOIN  TableB B ON (A.A1=B.A1 AND A.A2=B.A2) 
Смежные вопросы