2017-02-21 43 views
1

我有一個表點像下表:從分表用多邊形

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

有人解決了類似的問題?

注意:點的順序由列位置定義。

回答

2

我認爲你在這裏尋找的是GROUP_CONCAT,即像

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

更多關於GROUP_CONCAT看到docs

+0

GROUP_CONCAT授予點的順序是由列位置定義的順序? –

+0

@DavideLorenzoMARINO我修改了查詢按位置排序。 – wogsland

+0

正確的答案,謝謝 –