Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bigquery SQL:使用键值表转换表值_Sql_Google Bigquery_Legacy Sql - Fatal编程技术网

Bigquery SQL:使用键值表转换表值

Bigquery SQL:使用键值表转换表值,sql,google-bigquery,legacy-sql,Sql,Google Bigquery,Legacy Sql,我有两张桌子。 第一个表包含键值数据: Answer_Code |Fruit 1 |Apple 2 |Orange 3 |Pear 4 |Watermelon 第二个表包含收集的数据 Participant|Fruit Aaa |1 Bbb |2 Ccc |3 如何连接这些表,以便将第二个表中的水果列替换为第一个表中的

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

   Answer_Code |Fruit
   1           |Apple
   2           |Orange
   3           |Pear
   4           |Watermelon
第二个表包含收集的数据

   Participant|Fruit
   Aaa        |1
   Bbb        |2
   Ccc        |3
如何连接这些表,以便将第二个表中的水果列替换为第一个表中的水果值

   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子句必须是且of=每个表中一个字段名的比较,所有字段名都以表名为前缀。考虑使用标准的SQL.COM/BigQue/Doc/参考/标准SQL/),它允许涉及表达式和剩余谓词的非均匀连接和比较。
此外,我无法获得更新,设置为处理bigquery

您的ON子句不正确
而不是T1上的
。Fruit=T2.Fruit
你应该在T1上有
。response\u code=T2.Fruit

此外,您的查询中几乎没有多余的逗号

无论如何,您的查询应该如下所示

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

还建议使用BigQuery标准SQL-标准SQL是查询存储在BigQuery中的数据的首选SQL方言,并且具有多个Include,因此您可以
获取更新,设置为使用BigQuery

使用标准SQL!这是最简单的解决方案。太好了!非常感谢!如果回答了你的问题,请考虑接受答案:O)