优化Oracle SQL查询

下面是一个查询,它返回雇员的主管链,但它使用了一堆嵌套的SELECT语句。 我想知道这个查询是否可以被重构为更高效。 该查询适用于3级管理授权员工参加培训课程的应用程序。 目前,我们需要3个级别的批准,但可能会更改为4个或更多。

SELECT badge as employee, 
   supervisor_badge as boss1, 
   (select supervisor_badge FROM hr_data level2 WHERE badge = level1.supervisor_badge) as boss2
   (select supervisor_badge FROM hr_data level3 WHERE badge = 
           (select supervisor_badge FROM hr_data level2 WHERE badge = level1.supervisor_badge)) as boss3
   FROM hr_data level1 WHERE BADGE = '123456';

徽章=员工的ID
supervisor_badge =员工主管的徽章
这些字段位于hr_data表中

           badge    supervisor_badge 
           123456   111111
           111111   454545
           454545   332211

产量

 employee       boss1      boss2      boss3
 123456         111111     454545     332211
链接地址: http://www.djcxy.com/p/93929.html

上一篇: Optimizing an Oracle SQL Query

下一篇: Linq2Entities + Entity Framework query optimization: .Where() vs. Linq where