ST_Intersects 上的 Full Outer Join 会出错,但有时会起作用

Full Outer Join on ST_Intersects gives error but worked sometimes

我收到间歇性错误: FULL OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join. BigQuery 运行 昨天几个小时了,但现在又给我这个错误。

我使用个人历史记录确认昨天成功的查询今天出现此错误。 无论哪种方式,这都是给出错误的查询,我无法想出另一个给出相同结果的查询。我见过 the following post 但我的几何图形没有我知道的唯一 ID。

SELECT * FROM 
`segments`  AS s
FULL OUTER JOIN `zones` AS z
ON ST_Intersects(s.linestring, z.geog)

我在FULL OUTER JOIN和空间条件的查询中发现了类似的问题(是的,确实也可以成功完成查询),但现在我仍然没有完全理解原因。

作为“快速”修复,请尝试使用 FULL OUTER JOIN 与 UNION ALL 连接:

SELECT * FROM segments s
LEFT OUTER JOIN zones z
ON ST_Intersects(s.linestring, z.geog)
UNION ALL
SELECT * FROM segments s
LEFT OUTER JOIN zones z
ON ST_Intersects(s.linestring, z.geog)