首页 > 数据库技术 > 详细

pgsql 递归查询 分页

时间:2016-07-19 09:06:08      阅读:383      评论:0      收藏:0      [点我收藏+]
--向下查询
WITH RECURSIVE res AS ( 
       SELECT * FROM t_tree WHERE id = 2
     union   ALL 
       SELECT t_tree.* FROM t_tree, res WHERE t_tree.pid = res.id 
     ) 
SELECT * FROM res ORDER BY id limit 3 OFFSET (2-1)*3;--分页

--向上
WITH RECURSIVE res AS ( 
       SELECT * FROM t_tree WHERE id = 2
             union   ALL 
       SELECT t_tree.* FROM t_tree, res WHERE t_tree.id = res.pid 
       --select * from t_tree where t_tree.id = (SELECT t_tree.pid FROM t_tree WHERE id = 2) --id为id为2的记录的父id的记录,即向上查询
     ) 
SELECT * FROM res ORDER BY id;

适用于单继承关系(每一条记录只有一个父级)

pgsql 递归查询 分页

原文:http://www.cnblogs.com/oyx305/p/5683120.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!