2014-04-04 2 views
0

부모/자식 관계가있는 테이블이 있습니다. 누락 된 부모를 찾으려면 어떻게해야합니까?오라클 계층 적 쿼리에서 누락 된 부모 찾기

계층 적 테이블 :

child   parent 
2000698835  2001455376 

부모가 내가 그것을 삽입해야 고객 테이블에 존재하지 않는 경우. 다음은 고객 테이블에서 누락 된 상위 항목을 찾는 방법입니다. 쿼리

select * from customer where true_gcdb_source_key='2001455376'(which is the parent) 

는 아이의 모든 부모를 얻을 수 선택 *이 모든 부모를 가져 오는 데 사용됩니다

child_gcdb_id parent_gcdb_id 
2002615591 2002554170 
2002554170 2002554286 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554170 2002554286 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554170 2002554286 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 
2002554081 
2002554081 
2002554081 
2002554286 2002554081 

이 child_gcdb_id = 이전 parent_gcdb_id하여 연결 child_gcdb_id = '2002615591'로 시작 sap_cust_rel_init에서 그 자식

고객 테이블에 부모가없는 경우, 나는 그들을 삽입해야합니다.

+0

정말로 필요한 것을 상세히 기재하십시오. –

답변

0

당신은 간단한 SQL 쿼리를 확인해야합니다, 여기에 계층 적 쿼리를 필요가 없습니다

select c1.true_gcdb_target_key, c1.true_gcdb_source_key 
from customer c1 
where not exists 
(
    select 1 
    from customer c2 
    where c2.true_gcdb_target_key = c1.true_gcdb_source_key 
); 

나는 아이 필드가 true_gcdb_target_key했다 추측했다. 하위 ID로 존재하지 않는 상위 ID 만 검색합니다. 계층 적 쿼리는 계층 간, 경로, 루트 측면에서 행 간의 계층 관계를 원할 때만 사용됩니다. 여기에는 테이블에 부모 및 자식 정보가 이미 포함되어 있습니다.