首先我们要引入自连接和层次查询的概念:
自连接:利用表名的别名,将同一张表视为多张表。
层次查询:对同一张表的前后两次操作,进行连接。
自连接缺点:自连接不太适合操作大表。
解决方案:利用层次查询。
下面是我将表中的数据整理后画出的树形图:
通过上图可以看出各个数据之间的层次关系,level有4级,现在我们通过sql来实现这一关系:
例如:查询员工信息:员工的老板是谁?
通过以上sql查询即得到所需要查询员工老板信息,图中KING的MGR(老板)为
空,表示他上级没有老板,其中order by 1,这里1代表LEVEL。
sql中的prior empno = mgr表示前一个员工号等于后一个的老板号。