如何在 Bigquery 中对更新进行 LEFT JOIN?

问题描述 投票:0回答:1

所以我注意到在SQL Server中,Update语句的工作方式与Bigquery中不同,例如,在SQL Server中我们可以这样做:

UPDATE table1
SET table1.some_column = table2.some_column
FROM table1
LEFT JOIN table2 ON table1.some_value = table2.some_value
WHERE...

但问题是,将其移至Bigquery update,你不能像这样复制,因为根据我的理解,UPDATE将自动在要更新的表和FROM上的表之间执行INNER JOIN 子句,因此您不能在只想执行 LEFT JOIN 时执行相同的操作。例如,如果您只想在 Bigquery 中执行 INNER JOIN,您可以简单地执行以下操作:

UPDATE table1
SET table1.some_column = table2.some_column
FROM table2
WHERE table1.some_value = table.some_value

但是如果我需要执行 LEFT JOIN 而不是 INNER JOIN 该怎么办?我正在使用 Dataform 构建我的 Bigquery 表。

sql google-bigquery sql-update dataform
1个回答
0
投票

如果WHERE子句中没有指定条件,FROM子句联接可以是交叉联接,否则是内联接。在任一情况下,目标表中的行最多可以与 FROM 子句中的一行连接。请参阅此文档一次Gcp 文档

正如@bruno在评论#3中已经提到的,没有可用于左连接的gcp文档。但是,您可以在公共问题跟踪器中提出相同的功能请求,并且在创建公共问题跟踪器后,您可以投票对于此功能,请单击 +1 和 STAR 标记来接收更新。

© www.soinside.com 2019 - 2024. All rights reserved.