Oracle的层次查询及层次查询与自连接的比较
2014-03-09 12:54
381 查看
首先我们要引入自连接和层次查询的概念:
自连接:利用表名的别名,将同一张表视为多张表。
层次查询:对同一张表的前后两次操作,进行连接。
自连接缺点:自连接不太适合操作大表。
解决方案:利用层次查询。
下面是我将表中的数据整理后画出的树形图:
通过上图可以看出各个数据之间的层次关系,level有4级,现在我们通过sql来实现这一关系:
例如:查询员工信息:员工的老板是谁?
通过以上sql查询即得到所需要查询员工老板信息,图中KING的MGR(老板)为
空,表示他上级没有老板,其中order by 1,这里1代表LEVEL。
sql中的prior empno = mgr表示前一个员工号等于后一个的老板号。
自连接:利用表名的别名,将同一张表视为多张表。
层次查询:对同一张表的前后两次操作,进行连接。
自连接缺点:自连接不太适合操作大表。
解决方案:利用层次查询。
下面是我将表中的数据整理后画出的树形图:
通过上图可以看出各个数据之间的层次关系,level有4级,现在我们通过sql来实现这一关系:
例如:查询员工信息:员工的老板是谁?
通过以上sql查询即得到所需要查询员工老板信息,图中KING的MGR(老板)为
空,表示他上级没有老板,其中order by 1,这里1代表LEVEL。
sql中的prior empno = mgr表示前一个员工号等于后一个的老板号。
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Patrol 7 架构下?的处理方法
- 数据库自动备份脚本
- 中病毒后常用的解决方法病毒终极解决方案
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解
- Oracle Connect to Idle Instance解决方法
- oracle sys_connect_by_path 函数 结果集连接
- Oracle捕获问题SQL解决CPU过渡消耗
- oracle dba 应该熟悉的命令