0

我有两张桌子。第一个表包含键值数据:

   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/),它允许不等式 JOIN 以及涉及表达式和残差谓词的比较。

此外,我无法获得 UPDATE、SET 来处理 bigquery。

4

1 回答 1

1

您的 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   

还建议使用migrateBigQuery 标准 SQL - 标准 SQL 是查询存储在 BigQuery 中的数据的首选 SQL 方言,并且还具有多种advantages包括DML,因此您可以get UPDATE, SET to work on BigQuery

于 2018-05-20T17:10:30.387 回答