2017-08-09 54 views
1

在MySQL中,我可以用MySQL使用另一个表的值更新一个表 - 我可以在bigquery中使用它吗?

update TableA, TableB 
set TableA.field1 = TableB.field1 
where TableA.id = TableB.id 

TableA 
id field1 field2 
1 hello hi 

TableB 
id field1 field2 
1 world earth 

运行查询后,表A值将被更新为

TableA 
id field1 field 
1 world hi 

BigQuery中,我不能这样做。看起来我必须遍历TableB,为每个匹配的行更新TableA。 BigQuery具有庞大的数据。通过对每个匹配行的TableB循环,更新查询执行得并不顺利。

或者性能的原因,在BigQuery中,我可以

  • 选择场1,从表A场2其中id不从表B中选择ID(如果ID不在表B,取表A值)
  • 选择表B .field1如FIELD1,TableA.field2如FIELD2从表A,表B,其中TableA.id = TableB.id(如果标识在表B,然后使用TableB.field1值)
  • 联盟上述两个结果

不限SUG gestions?

回答

2

BigQuery中,我不能做同样的...

你肯定可以! 与BigQuery的DML标准SQL

UPDATE `project.dataset.TableA` AS TableA 
SET TableA.field1 = TableB.field1 
FROM `project.dataset.TableB` AS TableB 
WHERE TableA.id = TableB.id 
相关问题