1

我正在尝试使用大型子查询运行查询,并收到以下错误:表太大,无法加入。考虑使用 JOIN EACH。有关更多详细信息,请参阅https://developers.google.com/bigquery/docs/query-reference#joins

那么,对于子查询是否有相当于 JOIN EACH 的方法,我可以在其中加入大于 8mb 的表?我在文档中或四处搜索时都没有看到任何内容。这是我正在使用的查询——如果有办法重写它以更好地适应 bigquery 模型,那么我也对此持开放态度。

SELECT *
FROM [x.y]
WHERE column_hash NOT IN (
SELECT column_hash from [x.z]
)
4

1 回答 1

3

您正在执行的查询正在执行反连接,而不是子查询。您可以将其重写为显式连接,但它有点冗长:

SELECT y.* -- Note you may have to expand out these fields yourself
FROM [x.z] as z
LEFT OUTER JOIN EACH [x.y] as y ON y.column_hash = z.column_hash
WHERE y.column_hash is NULL
于 2013-11-12T23:19:43.907 回答