我刚进公司三天, 项目经理就给了我项目的一个模块。大概形容一下, 就是查询。。
现在的要求是这样在一张表中自连接查询
举个例子 就像一张员工表里 有 一个 id 和一个 上级的id 的属性
怎样通过 id 查找出 所有下属的信息(包括下属的下属) 因为用的是mysql数据库。
oracle的
还有,怎样查出 指定的某个下属的属性。。
sql 不太会写啊,怕过不了试用期,求各位高人指点指点了。
现在的要求是这样在一张表中自连接查询
举个例子 就像一张员工表里 有 一个 id 和一个 上级的id 的属性
怎样通过 id 查找出 所有下属的信息(包括下属的下属) 因为用的是mysql数据库。
oracle的
还有,怎样查出 指定的某个下属的属性。。
sql 不太会写啊,怕过不了试用期,求各位高人指点指点了。
2.select lpad(e.ename,length(e.ename)+(level-1)*2,'-') ename from emp e
start with empno = ?
connect by prior empno=mgr;
is
cursor emp_cur is select * from emp where mgr = v_empno;
cursor emp_cur1 is select * from emp where empno = v_empno;
v_emprow emp%rowtype;
v_str varchar(100);
begin for i in 1..v_count loop
v_str := v_str||' ';
end loop;
open emp_cur1;
fetch emp_cur1 into v_emprow;
if emp_cur1%found then
dbms_output.put_line(v_str||v_emprow.ename||':'||v_emprow.sal);
else
raise_application_error(-20000,'员工不存在,请您重新查询!');
end if;
close emp_cur1;
open emp_cur;
loop
fetch emp_cur into v_emprow;
if emp_cur%found then
pro_executeQuery(v_emprow.empno,v_count+1);
end if;
exit when emp_cur%notfound;
end loop;
close emp_cur;
Exception when others then
dbms_output.put_line(Sqlerrm);
end pro_executeQuery;