До того, как BigQuery Standard SQL стал доступен для всех нас 2 июня 2016 года, я был чрезвычайно доволен тем, что теперь называется BigQuery Legacy SQL.Я все еще наслаждаюсь этим время от времени для некоторых конкретных случаев использования
Я думаю, что случай, который вы описали в своем вопросе, как раз тот, где вы можете использовать функцию Legacy SQL для решения вашей проблемы
Итак,ниже для BigQuery Legacy SQL
#legacySQL
SELECT *
FROM [project:dataset.table1],
[project:dataset.table2]
Примечание: в BigQuery Legacy SQL запятая - ,
- означает UNION ALL
Упрощенный пример выше
#legacySQL
SELECT *
FROM (SELECT1 a, 2 b, 3 c, 11 x),
(SELECT 1 a, 4 d, 5 e, 12 x)
с результатом
Row a b c x d e
1 1 2 3 11 null null
2 1 null null 12 4 5
Примечание: вы не можете смешивать Legacy и Standard SQL в одном запросе, поэтому, если вам нужно использовать стандартный SQL для приведенного UNION - вам сначала нужно будет материализовать (сохранить) результат кактаблицу, а затем запросить эту таблицу с помощью стандартного SQL
Есть ли способ с помощью стандартного SQL
Вы можете использовать INFORMATION_SCHEMA для сценариев столбцов из обоихтаблицы и встроенный список всех задействованных столбцов - но вам все равно потребуется затем скопировать и вставить результат в окончательный запрос для его запуска