2017-08-09 6 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 

を使用することができ、TableAの値がBigQueryのでは

TableA 
id field1 field 
1 world hi 

に更新されます、私は同じことを行うことはできません。それは私がTableBを介してループする必要があるようだ、一致する各行のTableAを更新します。 BigQueryには膨大なデータがあります。一致する行ごとにTableBをループすると、更新クエリはうまく実行されません。

やパフォーマンスの理由で、BigQueryの中、私は可能性が

  • 選択フィールド1、TableBのからではない。SELECT IDのid(IDないTableBのであれば、TableAの値をとる)
  • がTableBのを選択するTableAのからフィールド2 FIELD1として.field1、テーブルAからFIELD2としてTableA.field2、テーブルBここTableA.id = TableB.id
  • ユニオン上記二つの結果

任意(IdはテーブルBに、次いでTableB.field1値を使用している場合)スグ妊娠? BigQueryので

答えて

2

、私は同じことを行うことができない...

よろしいことができます! BigQueryの標準SQLのDML

UPDATE `project.dataset.TableA` AS TableA 
SET TableA.field1 = TableB.field1 
FROM `project.dataset.TableB` AS TableB 
WHERE TableA.id = TableB.id 
関連する問題