MySQL 用另一个表的值更新一个表 - 我可以在 bigquery 中使用它吗?
Posted
技术标签:
【中文标题】MySQL 用另一个表的值更新一个表 - 我可以在 bigquery 中使用它吗?【英文标题】:MySQL update one table with the values of another table - Could I use it in bigquery? 【发布时间】:2017-08-09 18:39:28 【问题描述】:在 mysql 中,我可以使用
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 的值将更新为
TableA
id field1 field
1 world hi
在 BigQuery 中,我不能这样做。看来我必须遍历 TableB,为每个匹配的行更新 TableA。 BigQuery 拥有大量数据。为每个匹配的行循环遍历 TableB,执行更新查询不会很好。
或者出于性能原因,在 bigquery 中,我可以
select field1, field2 from TableA where id not in 从TableB中选择id(如果id不在TableB,取TableA的值) select TableB.field1 as field1,TableA.field2 as field2 from TableA, TableB where TableA.id = TableB.id(如果Id在TableB,则使用TableB.field1值) 合并以上两个结果有什么建议吗?
【问题讨论】:
【参考方案1】:在 BigQuery 中,我不能这样做......
你当然可以!!! 使用 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
【讨论】:
以上是关于MySQL 用另一个表的值更新一个表 - 我可以在 bigquery 中使用它吗?的主要内容,如果未能解决你的问题,请参考以下文章
用另一个 MySQL 表的值更新一个 MySQL 表(原始表的数据类型是 JSOn)