我有一个表点如下:
POINTS
--------------------
ID_POINT INT PK
COORD POINT
POSITION INT
ID_POLYGON INT
具有以下内容
ID_POINT COORD POSITION ID_POLYGON
---------------------------------------------------
1 POINT(1, 1) 1 1
2 POINT(2, 1) 2 1
3 POINT(2, 2) 3 1
4 POINT(0, 0) 1 2
5 POINT(1, 0) 2 2
6 POINT(1, 1) 3 2
7 POINT(0, 1) 4 2
如果可能,我需要使用查询提取以下结果集
ID_POLYGON BORDERS
----------------------------------------------------
1 POLYGON((1 1, 2 1, 2 2))
2 POLYGON((0 0, 1 0, 1 1, 0 1))
有人解决了类似的问题吗?
注意:点的顺序由列位置定义。
答案 0 :(得分:2)
我认为您在这里寻找的是GROUP_CONCAT
,例如
SELECT ID_POLYGON, GROUP_CONCAT(COORD ORDER BY POSITION ASC)
FROM POINTS
GROUP BY ID_POLYGON
有关GROUP_CONCAT
的更多信息,请参阅docs。