暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

2016-11-03-PostgreSQL之递归查询

原创 xiao_mini 2024-01-19
124

Table of Contents

参考

postgresql-recursive-query

实例

递归查询1

with recursive tbls as ( select parentid, id::text, name from base_dd_tab t where t.type='XXXX' and parentid ='-1' /*确定父集*/ union all select t.parentid, tbls.id::text || '->' || t.id::text, t.name from base_dd_tab t, tbls where t.type='XXXX' and t.parentid=tbls.id /*tbls.id是select上一次查询的结果*/ ) select * from tbls

递归查询2

with recursive tbls as (select 'father' father_parentsourceid, 'father' father_sourceid, sourceid ::text as aa, parentsourceid, sourceid, sourcetype, sourcename from base_source where parentsourceid = -1 and sourceid = XX /*确定第一次查询的结果,既父集*/ union all select tbls.parentsourceid::text father_parentsourceid, /*上一次查询结果集的parentsourceid*/ tbls.sourceid::text father_sourceid, /*上一次查询结果集的sourceid*/ l.parentsourceid ::text || '->' || l.sourceid ::text as aa, l.parentsourceid, /*本次查询结果集的parentsourceid*/ l.sourceid, /*本次查询结果集的sourceid*/ l.sourcetype, l.sourcename from base_source l, tbls where l.parentsourceid = tbls.sourceid /*递归查询*/ ) select * from tbls order by parentsourceid;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论