假设我们有以下表格
create table Employee( 2 EMPNO NUMBER(3), 3 ENAME VARCHAR2(15 BYTE), 4 HIREDATE DATE, 5 ORIG_SALARY NUMBER(6), 6 CURR_SALARY NUMBER(6), 7 REGION VARCHAR2(1 BYTE), 8 MANAGER_ID NUMBER(3) 9 )
和
create table job ( 2 EMPNO NUMBER(3), 3 jobtitle VARCHAR2(20 BYTE) 4 ) 5 /
我对以下查询的作用感兴趣
SELECT empno, manager_id, ename 2 FROM employee 3 START WITH empno = 1 4 CONNECT BY PRIOR empno = manager_id;
我的理解,这个代码选择empno,manager_id,ename从员工,它开始选择从该行地方empno=1,但不明白这行做了什么:
empno
manager_id
ename
empno=1
CONNECT BY PRIOR empno = manager_id;
是否与以下内容相同:
where empno=manager_id?
这将产生递归。将返回属于下一个较低层次级别的所有记录。这将为所有经理及其下属工作人员从上到下返回一个层次结构。
30 (manager_id) 12 5 (manager_id) 1 7 20 (manager_id) 15 10