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)
我收到间歇性错误:
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)