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,with T as( select id,name,pid from Admin_Department where pid=1union allselect x.id,X.name,T.pid f

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 04:43:44

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,with T as( select id,name,pid from Admin_Department where pid=1union allselect x.id,X.name,T.pid f
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,
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 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,with T as( select id,name,pid from Admin_Department where pid=1union allselect x.id,X.name,T.pid f
使用公共表表达式的递归查询,递归获取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\x05b\x051
3\x05c\x051
4\x05d\x051
5\x05e\x051
6\x05f\x051
7\x05g\x051
因为都是1,a,0下的所有部门,所以它们的pid都是为1的.
如果还不清楚的话就看看CTE(公共表表达式)的资料,比较有用的技巧,建议掌握.

创建临时数据集,插入数据包括:
1.从Admin_Department 查出pid=1的数据
2从Admin_Department 表和T表中查出pid和Id相等的数据

去编程分类提问吧。。这里是数学分类