У меня есть две таблицы, которые довольно широки (30 столбцов), но имеют очень схожую схему (более 20 столбцов совместно используются в обеих таблицах).Я хочу объединить эти две таблицы вместе, но хочу, чтобы в новой таблице были все поля из обеих таблиц.
Аналогично идее этого вопроса Stackoverflow .
Однако возникают проблемы, когда я начинаю писать запросы, в которых мне нужно указать все столбцы из каждой таблицы ине только это, но также использовать NULL для заполнения столбцов, которые присутствуют только в другой таблице.
Примерно так:
select
commoncolumn1,
commoncolumn2,
table1_only_column1,
NULL as table2_only_column1
...
from table1
union all
select
commoncolumn1,
commoncolumn2,
NULL as table1_only_column1,
table2_only_column1
...
из таблицы 2
Этот запрос очень длинный, так как количество столбцов увеличивается, а также не совсем устойчив к изменениям схемы.Есть ли лучший способ объединения двух таблиц, которые автоматически заполняют NULL для несуществующих таблиц?
Я использую Impala / Hive, но если есть способ ANSI, это будет здорово!