Bigquery SQL: преобразование табличных значений с использованием таблицы ключ-значение - PullRequest
0 голосов
/ 20 мая 2018

У меня есть две таблицы.Первая таблица содержит данные значения ключа:

   Answer_Code |Fruit
   1           |Apple
   2           |Orange
   3           |Pear
   4           |Watermelon

Вторая таблица содержит собранные данные

   Participant|Fruit
   Aaa        |1
   Bbb        |2
   Ccc        |3

Как можно объединить эти таблицы, чтобы столбец Fruit во второй таблицебудет заменен значениями Fruit в первой таблице?

   Participant|Fruit
   Aaa        |Apple
   Bbb        |Orange
   Ccc        |Watermelon

Я пробовал следующее:

SELECT T1.*, T2.*,
FROM [Table1] T1, 
JOIN [Table2] T2 ON T1.Fruit = T2.Fruit,
LIMIT 10;

Я получаю следующую ошибку:

Предложение ON должно быть AND of = сравнения одного имени поля из каждой таблицы со всеми именами полей с префиксом имени таблицы.Подумайте об использовании стандартного SQL .google.com / bigquery / docs / reference / standard-sql /), который допускает неравномерное соединение и сравнение с использованием выражений и остаточных предикатов.

Далее я не могу получить ОБНОВЛЕНИЕ, SET для работы на большие запросы.

1 Ответ

0 голосов
/ 20 мая 2018

Ваше предложение ON неверно
Вместо ON T1.Fruit = T2.Fruit у вас должно быть ON T1.Answer_Code = T2.Fruit
Также у вас есть несколько дополнительных запятых в вашем запросе

В любом случае, ваш запрос должен выглядеть следующим образом

SELECT T2.Participant, T1.Fruit
FROM [Table1] T1 
RIGHT JOIN [Table2] T2 ON T1.Answer_Code = T2.Fruit
LIMIT 10   

Рекомендуется также migrate для BigQuery Standard SQL - Стандартный SQL является предпочтительным диалектом SQL для запроса данных, хранящихся в BigQuery, и также имеет несколько advantages включая DML, поэтому вы можете get UPDATE, SET to work on BigQuery

...