Google bigquery 响应太大,即使“允许较大的结果”为真,也无法返回

Google bigquery 响应太大,即使“允许较大的结果”为真,也无法返回,google-bigquery,Google Bigquery,Bigquery返回错误“结果太大,无法返回”,即使我切换了“允许大结果”。我的问题是这样的: SELECT a, b, c FROM table_1 WHERE a IN (SELECT a FROM table_2) SELECT table_1.a as a, b, c FROM table_1 JOIN EACH table_2 ON table_1.a = table_2.a 当我重新组织查询以使用联接代替子查询时,错误消失了。我的新查询如下所示: SELECT a, b, c F

Bigquery返回错误“结果太大,无法返回”,即使我切换了“允许大结果”。我的问题是这样的:

SELECT a, b, c
FROM table_1
WHERE a IN (SELECT a FROM table_2)
SELECT table_1.a as a, b, c
FROM table_1
JOIN EACH table_2
ON table_1.a = table_2.a

当我重新组织查询以使用联接代替子查询时,错误消失了。我的新查询如下所示:

SELECT a, b, c
FROM table_1
WHERE a IN (SELECT a FROM table_2)
SELECT table_1.a as a, b, c
FROM table_1
JOIN EACH table_2
ON table_1.a = table_2.a
我怀疑问题在于我使用了一个子查询(无论如何,这是一个糟糕的SQL)。

没错!“results too large”来自子查询,JOIN EACH修复了这个问题。您的原始查询不是“bad SQL”,它是一个有效的半连接SQL,但IN子句不支持每个限定符,JOIN子句支持的方式与JOIN子句不一样。