Đây là một ví dụ chính tắc về VỚI RECURSIVE
Hãy thử điều này:
with recursive subordinates as
(select
employeid,
e.managerid,
e.managerid as leader
from employes e
where e.managerid in(select * from leaders) -- non recursive term
union
select
e.employeid,
e.managerid,
a.managerid as leader
from employes e
join subordinates a on a.employeid = e.managerid -- recursive term
) select * from subordinates
Như được mô tả trong tài liệu:
Đ CÓ HỒ SƠ luôn được soạn bởi
- Một thuật ngữ không đệ quy
- CÔNG ĐOÀN hoặc UNION ALL
- Một thuật ngữ đệ quy, thuật ngữ duy nhất có thể tham chiếu đến kết quả truy vấn
Tem kết hợp lại bắt đầu khi lần lặp trước không có đầu ra.