【发布时间】:2016-12-22 22:23:50
【问题描述】:
我需要使用 array_agg 和空间查找的结果更新我的 Postgres 表中的几千行。
查询需要获取父表的几何图形,并返回另一个表中匹配行 ID 的数组。它可能不返回任何 ID 或可能返回 2-3 个 ID。
我尝试使用 UPDATE FROM,但似乎无法将 SELECT 的父表 geom 列传递到子查询中。我看不到在 2 个表之间进行 JOIN 的任何方式。
这是我目前拥有的:
UPDATE lrc_wales_data.records
SET lrc_array = subquery.lrc_array
FROM (
SELECT array_agg(wales_lrcs.gid) AS lrc_array
FROM layers.wales_lrcs
WHERE st_dwithin(records.geom_poly, wales_lrcs.geom, 0)
) AS subquery
WHERE records.lrc = 'nrw';
我得到的错误是:
ERROR: invalid reference to FROM-clause entry for table "records"
LINE 7: WHERE st_dwithin(records.geom_poly, wales_lrcs.geom, 0)
这可能吗?
非常感谢, 史蒂夫
【问题讨论】:
标签: postgresql postgis