sql server查询所有上级/下级

本文介绍了一种使用SQL的WITH语句进行递归查询的方法,以获取学校中所有学生及其可能存在的上下级关系。通过两次不同的WITH子句定义,分别展示了如何从sys_student表中直接选择满足条件的学生信息,并通过递归联合查询来获取学生的上下级关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//上级
with test_student(stu_id, stu_name)
as
(
select stu_id, stu_name
from sys_student
where school_id = ‘1’ and del_flag = 0
union all
select a.parent_id, a.stu_id, a.stu_name
from sys_student a
inner join
test_student b
on a.stu_id=b.parent_id where a.del_flag = 0
)
select stu_id, stu_name from test_student order by stu_id
//下级
with test_student(stu_id, parent_id,stu_name)
as
(
select s.stu_id, s.parent_id, s.stu_name
from sys_student s
where s.school_id = ‘1’ and s.deleted_flag = 0
union all
select a.stu_id, a.parent_id, a.stu_name
from sys_student a
inner join
test_student b
on a.parent_id=b.stu_id where a.deleted_flag = 0
)
select stu_id, stu_name from test_student order by stu_id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值