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)
展开
junailan2
2012-05-09 · 超过32用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:76.4万
展开全部
使用公共表表达式的递归查询,递归获取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(公共表表达式)的资料,比较有用的技巧,建议掌握。
wangzhangxiaoy
2012-05-09 · TA获得超过132个赞
知道小有建树答主
回答量:260
采纳率:0%
帮助的人:187万
展开全部
创建临时数据集,插入数据包括:
1.从Admin_Department 查出pid=1的数据
2从Admin_Department 表和T表中查出pid和Id相等的数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yugh110
2012-05-09 · TA获得超过345个赞
知道答主
回答量:146
采纳率:0%
帮助的人:128万
展开全部
去编程分类提问吧。。这里是数学分类
追问
不好意思,没看分类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式