0
這個問題有一定的關係,我剛纔的問題: Oracle SQL Connect By Logic甲骨文的CONNECT BY
表:
create table temp (emp_id varchar2(3), manager_id varchar2(3))
數據:
E10 E20
E20 E50
E30 E50
E40 E40
E50 E90
E90 E90
我想創建一個查詢中使用連接通過上鍊查找父 - 母記錄而不是獲取子記錄。
解決辦法:
Select EMP_ID
from temp
Start with EMP_ID = 'E20'
Connect by NOCYCLE EMP_ID = Prior MANAGER_ID
order by EMP_ID
但是按我的要求,我需要獲取所有家長&上述查詢停在E90。 [可能是因爲NOCYCLE,因爲E90上的經理是一樣的]。
查詢輸出:
E20
E50
所需的輸出:
E20
E50
E90
請指教。
我得到了你想做的事情。但是,刪除NOCYCLE會導致「ORA-01436:用戶數據中的CONNECT BY循環」錯誤,因爲這種情況下的最終父母將成爲它自己的經理。 – pOrinG
@pOrinG mathguy並不要求您刪除'connect by',只需將它添加到您的連接查詢中 –
謝謝,它的工作原理! @mathguy但是我還不能理解它是如何工作的。假設我的循環達到了E50-E90,它將搜索Emp_Id,其中[先前] Manager_Id = E90,即E90-E90。然後它將再次搜索Emp_Id,其中[先前] Manager_Id = E90,並且之前的emp_id應該是E90。我想我在這裏失去了一些東西。 – pOrinG