Сглаживание с отсутствующими или без результатов

Я довольно новичок в Bigquery, и я хотел бы раскрутить 2 таблицы в одном запросе.

Я попытался запросить код ниже, но это не сработало. Он дал мне это сообщение: "Этот запрос не дал результатов".

SELECT
    timestamp AS Date,
    A.key,
    B.name
FROM `pms_table_request_log.partners_request_log_*`,
     UNNEST(jsonPayload.response.body.channels) AS A,
     UNNEST(jsonPayload.response.body.data.rows) AS B;

Я ожидаю, что ключ и имя будут неопубликованными.

1 ответ

Решение

Если с помощью unnesting вы хотите "сгладить", что означает вывод данных из полей массива на верхний уровень, вы можете попробовать LEFT JOIN вместо CROSS JOIN (это запятая)

SELECT timestamp AS Date ,A.key ,B.name 
FROM pms_table_request_log.partners_request_log_* 
  LEFT JOIN UNNEST(jsonPayload.response.body.channels) AS A 
  LEFT JOIN UNNEST(jsonPayload.response.body.data.rows) AS B

Если какой-либо из массивов пуст, CROSS JOIN уничтожит весь ряд в то время как LEFT JOIN сохраняет левый "стол"

Другие вопросы по тегам