【发布时间】:2019-10-17 07:35:47
【问题描述】:
我有一个 BigQuery 表,其地址包括 Lat/Lng 和其他 BQ 表,其中包含从 Census shapefile 导入的工作几何定义。对于地址表中的每一行,我都在尝试查找包含它的 geom 行。
以下查询是我查找 INDIVIDUAL lat/lng 工作正常:
SELECT SLDLST FROM `geographies.tl_2018_sldl_*` sldl WHERE ST_CONTAINS(sldl.geom, ST_GEOGPOINT(-95.221080, 38.974500));
但是当我尝试抽象成一个像这样的连接时
SELECT
address_id,
SLDLST
FROM `launchpad-239920.address_standardization.temp_delete_geo_match_sample` ssgolden
LEFT JOIN `geographies.tl_2018_sldl_*` sldl ON ST_CONTAINS(sldl.geom, ST_GEOGPOINT(ssgolden.longitude, ssgolden.latitude));
我收到一个错误: “如果没有连接两边字段相等的条件,就不能使用左外连接。”
如何重组我的联接查询以便能够为每个地址提取匹配的地理位置?
【问题讨论】:
-
为什么不直接使用
JOIN?除非您需要在结果中保留不匹配的地址。请澄清/确认 -
哦..很好。我可能确实想保留不匹配的地址,但我完全可以通过简单的连接来完成它,然后将连接返回到我的原始数据中。如果您想将该评论转换为答案,我很乐意考虑将其标记为已接受。否则,谢谢!
-
刚刚添加了我的答案
标签: google-bigquery gis