`
maping
  • 浏览: 40922 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 两表连接的递归查询

阅读更多

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

 

分享到:
评论

相关推荐

    递归查询菜单树,支持mysql,oracle

    这里,我们将深入探讨如何使用递归查询来构建菜单树,并特别关注在MySQL和Oracle这两种广泛使用的数据库系统中的实现。 首先,我们要理解什么是递归查询。递归查询是一种在数据库中处理层次数据的方法,它通过自身...

    Oracle递归SQL学习

    因此,合理设计表结构,例如使用自连接而不是递归,或者限制递归深度,对于优化查询性能至关重要。 至于Velocity模板语言,它并不支持递归渲染。这意味着在生成HTML或其他格式的输出时,如果需要递归地展示树结构,...

    Oracle递归查询

    当需要同时查询两个表中的信息时,可以使用两表连接递归查询。例如,有一个部门表(`tbl_department`)和一个员工表(`tbl_employee`),我们想要查询指定部门的所有员工及其子部门的员工,可以使用以下SQL语句: ```...

    Oracle中的树状查询(递归查询)

    Oracle数据库系统在处理层次数据或树形结构时,提供了强大的工具——递归查询。递归查询允许我们在数据表中处理嵌套级别的数据,这在权限查询、组织结构、产品分类等场景中尤其常见。本文将深入探讨Oracle中的树状...

    Oracle 递归函数介绍

    其中,`START WITH` 子句指定了递归查询的起始点,`CONNECT BY` 子句指定了递归查询的连接条件。 在上面的示例代码中,我们创建了一个名为 `T_DEPT_HP` 的表,并插入了一些示例数据。然后,我们可以使用递归函数来...

    在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf

    -- Recursive member: 连接递归 SELECT t.id, t.name, t.parentid FROM recursion AS r INNER JOIN @ttable AS t ON r.id = t.parentid ) SELECT * FROM recursion; ``` MYSQL中递归查询的例子(使用NOT EXISTS...

    在db2和oracle中的对树的递归查询语句

    DB2虽然没有直接提供类似Oracle的`CONNECT_BY`功能,但可以通过自连接和临时表的方式来实现递归查询。一个典型的例子是使用`WITH RECURSIVE`子句: ```sql WITH RECURSIVE employee_tree (level, employee_id, ...

    数据库设计之递归树查询

    以下是在Oracle中进行递归查询的例子: ```sql SELECT id, name, CONNECT_BY_ROOT id AS root_id FROM employees START WITH id = some_employee_id CONNECT BY PRIOR id = manager_id; ``` 六、注意事项与优化 1....

    dhtmlx tree 使用,与oracle递归查询的结合

    递归查询允许我们从一个起点开始,通过指定的连接条件递归地获取所有相关的子节点。 **dhtmlx Tree与Oracle递归查询的结合** 将dhtmlx Tree与Oracle的递归查询结合起来,可以在前端展示由后端数据库动态生成的树形...

    MySQL多种递归查询方法.docx

    #### 一、Oracle中的递归查询方法 在Oracle数据库中,递归查询可以通过`START WITH CONNECT BY PRIOR`语句实现。此语句允许用户按照树状结构来检索数据。 ##### 1. `START WITH CONNECT BY PRIOR`用法详解 **基本...

    所有BOM列表_VBA连接BOM表的递归展开至最后一阶_

    标题“所有BOM列表_VBA连接BOM表的递归展开至最后一阶”表明这是一个使用VBA脚本创建的Excel工作簿,其功能是通过连接到Oracle数据库来获取BOM数据,并递归地展开所有层级,直到达到最底层的组件。 这个过程涉及到...

    深入sql oracle递归查询

    Oracle数据库系统提供了两种主要的递归查询方法:一种是使用`WITH`子句配合`UNION ALL`,另一种是使用`START WITH`和`CONNECT BY`。这两种方法都能解决查询层次关系的问题,例如找出某个节点的所有子节点或父节点。 ...

    10.2.0.3版本 with改造递归查询

    - 从`ghsj_xm.pub_cant`表中选取符合条件的数据,使用`CONNECT BY`子句进行递归连接,并排除特定的`cant_code`值。 - 使用`DECODE`函数根据`level`字段的不同值设置`super_code`。 - **外部查询**: - 在`tas`临时...

    Oracle复杂查询语句的使用

    连接查询主要用于从两个或更多表中获取数据,根据不同的连接方式,可以分为内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN)。 ##### 1.1 内连接 内连接返回两个表中满足...

    oracle 使用递归的性能提示测试对比

    而正确做法则将文件查询独立于递归之外,仅在最后阶段与文件表进行连接,这样能有效减少计算量和资源消耗。 在优化递归查询时,可以考虑以下几点: 1. **最小化递归起点**:尽可能限制递归的起点,只处理需要的子树...

    Oracle 11GR2的递归WITH子查询方法

    Oracle 11GR2的递归WITH子查询是一种强大的工具,它允许你在SQL查询中创建递归关系,处理层级数据,比如组织结构、家族树或依赖关系等。WITH子查询,也称为公共表表达式(Common Table Expression,简称CTE),自SQL...

    oracle SQL递归的使用详解

    Oracle SQL的递归查询主要由两部分组成:`START WITH`和`CONNECT BY`。`START WITH`子句指定递归的起始条件,而`CONNECT BY`定义了递归的连接规则。 - `START WITH`:定义递归开始的节点,即基础条件。例如,`START...

    一种MySQL数据库SQL递归查询的研究与实现.pdf

    CONNECT BY PRIOR`子句直接支持递归查询,而SQL Server 2005及以上版本则利用公共表表达式(CTE)的递归调用来实现。POSTgreSQL同样支持CTE子查询进行递归。这些数据库允许在SQL语句中直接对子查询进行递归调用,...

Global site tag (gtag.js) - Google Analytics