Table of Contents
参考
实例
递归查询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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




