从带有点的表到带有多边形的表

时间:2017-02-21 13:24:12

标签: mysql

我有一个表点如下:

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))

有人解决了类似的问题吗?

注意:点的顺序由列位置定义。

1 个答案:

答案 0 :(得分:2)

我认为您在这里寻找的是GROUP_CONCAT,例如

SELECT ID_POLYGON, GROUP_CONCAT(COORD ORDER BY POSITION ASC)
FROM POINTS
GROUP BY ID_POLYGON

有关GROUP_CONCAT的更多信息,请参阅docs