论坛首页 入门技术论坛

Oracle 两表连接的递归查询

浏览 3442 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-12   最后修改:2009-02-12

Oracle 的递归查询:

      1.  从上级递归查下级        

select  * from tbl_test  start  with  id  = ? connect  by  prior  id  = pid

     2.从下级递归查上级

select  * from  tbl_test  start  with id= ? connect  by  prior pid = id

    3.  两表连接递归查询

        在这里假设有两张表,部门表(tbl_department) 和员工表(tbl_employee)

       根据指定的部门ID,查询所有该部门的员工 及 子部门的员工

 

select emp.*,dept.name dept_name from tbl_employee emp, tbl_department dept
 where emp.dept_id = dept.id and 
( emp.dept_id = ? or emp.dept_id in 
( select a.id from tbl_department a 
start with a.id = ? connect by prior a.id = a.upper_id ) ) 
order by emp.id

 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics