2017-03-16 1 views
0

이 포럼에서는 새로운 기능이므로 오라클 환경과 관련된 SQL 쿼리를 신속하게 작성하는 것이 가능한지 알고 싶습니다.Sql 쿼리 (자체 조인)

I이 예를 들어,이 다음 쿼리 :

SELECT table3.numero 
FROM table1 table1 
    INNER JOIN table2 ON table2.id = table1.tbl1_id 
    INNER JOIN table3 ON table3.id = table2.tbl2_id; 

내가 기존 필드라는 옵션의 값에 따라 선택 (table3.numero)에서 같은 필드를 표시하기위한 새로운 조건을 추가하고 싶습니다 표 1.

옵션 필드에는 혼합 값 (null 및 table1.id)이 포함됩니다. 이 값들 사이에 링크가 있습니다. options 필드의 Table1.id는 값이 null 인 레코드의 table1.id를 나타냅니다. 널 (null) 값을 갖는 레 Z 드가 널 (null)과 다른 값을 갖는 레코드의 상위라고 생각할 수 있습니다.

내 질문에 부모 레코드에 대한 값을 나타내는 또 다른 table3.numero를 선택하고 자식 레코드에 대해 값을 추가 할 수 있는지 알아 보는 것이 좋습니다.

정확하게이 쿼리를 수행하는 방법을 모르겠습니다.

도움 주셔서 감사합니다.

id  options 
------ ------- 
151515 151516 
151516 
151517 
151518 151517 

표 3

numero 
------ 
4333 
2452 
4245 
1121 

table3.numero (부모 = table1.option가 NULL) 표

8844 
5515 
1518 
1444 

table3.numero (대

테스트 데이터 아이 => 표 . 옵션)

8789 
5454 
3654 
2114 
+1

일부 샘플 데이터를 추가하면 요구 사항이 명확하지 않습니다. – Stephen

+2

간단히 대답하면 가장 가능성이 높지만 정확해야합니다. 데이터 예제 및 원하는 출력 예제 표시 – Jonny

+0

SELECT table3.numero, table3.numero (parent), table3.numero (children) FROM table1 table1 INNER JOIN 테이블 1 테이블 12 ON table12.id = table1 .id 및 table1.options은 null (부모)이고 table1.options = table1.id (상위 레코드의 ID 포함) –

답변

0

나는 당신이 의미하는 바를 이해한다고 생각합니다. 나는 당신이 가지고있는 것처럼 들리는 샘플을 만들었습니다.

id  options 
151515 151516 
151516 
151517 
151518 151517 

표 3

id  numero 
151515 8789 
151516 8844 
151517 5515 
151518 5454 

결과

id  numero parent child 
151515 8789 8844 8789 
151518 5454 5515 5454 

쿼리 사용 된

SELECT T3.ID,T3.NUMERO,T3_PARENT.NUMERO PARENT,T3.NUMERO CHILD 
FROM TABLE1 T1 
JOIN TABLE3 T3 ON T1.ID=T3.ID AND T1.OPTIONS IS NOT NULL 
JOIN TABLE3 T3_PARENT ON T3_PARENT.ID=T1.OPTIONS 
+0

고맙습니다. 나는 그것이 내가하고 싶은 일이라고 생각한다. 나는 내일 아침에 그것을 시도 할 것이고, 내가 기대하는 결과를 주면 당신과 연락 할 것입니다. –