我有两张这样的table:
lines:
line_id| geometry
-------------------
1 | ....
2 | ....
3 | ....
4 | ....
5 | ....
6 | ....
(几何图形列在线条表中填写)
polygons:
poly_id | line_id
--------------------
1 | 1
1 | 2
1 | 3
1 | 4
2 | 3
2 | 5
2 | 6
2 | 7
正如你在多边形表中看到的,我有一条构成多边形的线的id-s。我要做的是,我创建一个新表,每个poly\u id只有一条记录:
SELECT DISTINCT(poly_id)
INTO polygons_new
FROM polygons;
SELECT AddGeometryColumn('polygons_new','geom',23700,'POLYGON',2);
在这之后,我想填写几何专栏,但到目前为止,我无法做到这一点。我试过的是这样的:
UPDATE polygons_new
SET geom = (SELECT ST_Collect(SELECT geometry FROM lines as a, polygons as b WHERE a.line_id = b.line_id))
问题是它在子查询中返回多行。有办法完成这个任务吗?
1条答案
按热度按时间qyyhg6bp1#
你试过用,
ST_Collect
,ST_MergeLine
然后使用ST_MakePolygon
? 下面的例子将让您了解我所说的内容:编辑:如果只有
MULTILINESTRING
够了,就用吧ST_Collect
(见注解):