sql 问题 id,name,pid(1,a,0) 下面有如下数据: 2,b,1 3,c,1 4,d,1 5,e,2 6,f,5 7,g,
怎么用sql语句查询出这些所有数据?下面有这样一句sql,请解释执行过程withTas(selectid,name,pidfromAdmin_Departmentwher...
怎么用sql语句查询出这些所有数据?
下面有这样一句sql,请解释执行过程
with T as(
select id,name,pid from Admin_Department where pid=1
union all
select x.id,X.name,T.pid from Admin_Department x,T
where x.pid=T.id) 展开
下面有这样一句sql,请解释执行过程
with T as(
select id,name,pid from Admin_Department where pid=1
union all
select x.id,X.name,T.pid from Admin_Department x,T
where x.pid=T.id) 展开
展开全部
使用公共表表达式的递归查询,递归获取Admin_Department中的数据,明显是要按照部门(Department)的上下级来取所有部门。
执行的过程应该是这样子的(pid是上级部门的id吧,parent id的意思):
先取出pid=1的数据,就是部门a下的所有第一级部门,也就是2,b,1 3,c,1 4,d,1
然后再递归取部门b,c,d下面的部门,依次是5,e,2 6,f,5 7,g,...
依次往下取出部门a下的所有部门。
全部取出来后是这样子:
id name pid
2 b 1
3 c 1
4 d 1
5 e 1
6 f 1
7 g 1
因为都是1,a,0下的所有部门,所以它们的pid都是为1的。
如果还不清楚的话就看看CTE(公共表表达式)的资料,比较有用的技巧,建议掌握。
执行的过程应该是这样子的(pid是上级部门的id吧,parent id的意思):
先取出pid=1的数据,就是部门a下的所有第一级部门,也就是2,b,1 3,c,1 4,d,1
然后再递归取部门b,c,d下面的部门,依次是5,e,2 6,f,5 7,g,...
依次往下取出部门a下的所有部门。
全部取出来后是这样子:
id name pid
2 b 1
3 c 1
4 d 1
5 e 1
6 f 1
7 g 1
因为都是1,a,0下的所有部门,所以它们的pid都是为1的。
如果还不清楚的话就看看CTE(公共表表达式)的资料,比较有用的技巧,建议掌握。
展开全部
创建临时数据集,插入数据包括:
1.从Admin_Department 查出pid=1的数据
2从Admin_Department 表和T表中查出pid和Id相等的数据
1.从Admin_Department 查出pid=1的数据
2从Admin_Department 表和T表中查出pid和Id相等的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去编程分类提问吧。。这里是数学分类
追问
不好意思,没看分类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询