"OR"

2017-05-23 6 views
0
PRIOR

하여 연결 연산자는 데이터베이스의 행은 다음과 같습니다"OR"

DATAID OWNERID PARENTID 
111 123  133 
976 346  111 
987 976  657 

내가 모든 행을 표시 할 만 상위 2 행이 표시지고 다음 쿼리를 사용하여 내가 모든 필요 3 행 :

SELECT * FROM DTREE start with DATAID=111 
connect by prior dataid=parentid OR dataid=ownerid; 

단지 dataid=parentid 부분이 아닌 두 번째 하나를 실행하는 것 같다. 대안

SELECT * FROM DTREE start with DATAID=111 
connect by prior dataid=parentid OR prior /* <-- MISSING!!! */ dataid=ownerid; 

:

+0

부모 또는 소유자 ID. 여기서 어떤 결과물을 기대하십니까? –

+0

976의 DATAID 값을 올바르게 고려해야합니까? 이후 행 3의 ownerid는 976 (dataid = ownerid)이므로 표시되어야합니까? – ghostrider

+0

'상위 2 행만 표시됩니다. '... 이것은 내가 기대하는 바입니다. –

답변

1

넌 DATAID 번째 발생에인가 PRIOR 연산자 누락

은`DATAID` 값`987` 관통 다른 행에 연결되지
connect by prior dataid in (parented, ownerid);