一个点类型数据表,格式为ID,Geom。
一个线类型数据表,格式为STARTID,ENDID,Geom,其中STARTID和ENDID都来源于点数据的ID值,为了表示点和线的连接关系。
如何实现随意指定一条点记录或者一条线记录,查询出所有能够跟这条记录连通的点和线(直到最末级无法查询出连通的记录为止)?
用了PostgreSQL的递归,如下:
WITH RECURSIVE T(START_SID,END_SID,GID) AS(
SELECT START_SID,END_SID,GIDFROM pipesection WHERE GID=23822
UNION ALL
SELECT T1.START_SID,T1.END_SID,T1.GID
FROM pipesection T1 JOIN T ON T1.START_SID=T.END_SID
)
SELECT START_SID,END_SID,GID FROM T;
但是只能查询出单一方向的连通关系,还望高人指点,谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。