Я пытаюсь добиться следующего. Предположим, у меня есть две таблицы:
WITH table_1 as (
SELECT
* FROM UNNEST([
STRUCT([1] as A, [2,3,4] as B),
STRUCT([2],[6,7])
])
)
Таблица 2:
WITH example as (
SELECT
* FROM UNNEST([
STRUCT([1,2] as C, [77] as D),
STRUCT([3,4],[88]),
STRUCT([4],[99])
])
)
Я хотел бы объединить table_1 и table_2 на основе следующего условия, что все значения C должны быть в B:
SELECT A, C, D FROM table_1 LEFT JOIN table_2 ON C CONTAINED IN B
Это приведет к в следующей таблице:
Мой вопрос: возможно ли получить желаемый результат? Я не смог написать оператор CONTAINED IN
для двух массивов в качестве условия для оператора LEFT JOIN
. Еще одним требованием является то, что таблица 1 содержит 100 миллионов строк, а таблица 2 - 25 тысяч. Поэтому решение должно быть эффективным. Я знаю, что это увеличивает сложность вопроса ...: P
Ваша помощь будет принята с благодарностью!