子查询的等效“JOIN EACH”

时间:2013-11-12 18:31:12

标签: google-bigquery

我正在尝试使用大型子查询运行查询,并且收到以下错误:表格对于JOIN来说太大了。考虑使用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]
)

1 个答案:

答案 0 :(得分: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