递归查询:
with recursive tmp_emp as (
select
employee_id,
manager_id,
full_name
from employees where employee_id=2 --开始递归时,tmp_emp的数据即为此sql的结果集。
union all
select
e.employee_id,
e.manager_id,
e.full_name
from employees e
inner join tmp_emp t on t.employee_id=e.manager_id
)
select * from tmp_emp;
创建递归视图:
即把递归查询的tmp_emp替换为视图名
create recursive view employ_manager (employee_id,manager_id,full_name) as
select
employee_id,
manager_id,
full_name
from employees where employee_id=2 --开始递归时,tmp_emp的数据即为此sql的结果集。
union all
select
e.employee_id,
e.manager_id,
e.full_name
from employees e
inner join employ_manager t on t.employee_id=e.manager_id;
select * from employ_manager;
PostgreSQL递归视图
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原创文章,首发自作者个人博客,转载请务必将下面这段话置于文章开头处。本文转发自Jason's Blog,原文链接h...
- 视图是一个基于一个或多个表的数据定义的虚拟表。视图是没有数据的,视图里面的数据都是来自实际的表。 视图的作用: 简...