您的位置:首页 > 数据库

pgsql 递归查询 分页

2016-07-18 23:28 459 查看
--向下查询
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;


适用于单继承关系(每一条记录只有一个父级)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: