WITH查询的RECURSIVE属性

WITH查询的一个重要属性是RECURSIVE,使用RECURSIVE属性可以引用自己的输出,从而实现递归,一般用于层次结构或树状结构的应用场景。

例如,存在一张包含如下数据的表。table=test_area

在这里插入图片描述
使用PostgreSQL的WITH查询检索ID为7以及以上的所有父节点,如下:WITH RECURSIVE r AS ( SELECT * FROM test_area WHERE id = 7 UNION ALL SELECT test_area.* FROM test_area, r WHERE test_area.id = r.fatherid ) SELECT * FROM r ORDER BY id;查询结果如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43239192/article/details/85318285