여러 테이블을 조인하고 많은 열을 반환하는 쿼리가 있습니다.Oracle : 다른 테이블에 행이 있는지 확인하십시오.
다른 테이블의 인덱스 된 열은 이러한 조인 된 테이블 중 하나의 PK를 참조합니다. 이제 새 테이블에 ID가있는 하나 이상의 행이 있는지 쿼리에 다른 열을 추가하고 싶습니다. 나는 이전 테이블
ID
1
2
3
및 새 테이블 중 하나가있는 경우
그럼
REF_ID
1
1
1
3
나는
ID REF_EXISTS
1 1
2 0
3 1
나는 몇 가지 생각할 수
을 좀하고 싶습니다 그렇게하는 방법은 있지만 가장 우아하고 효율적인 것은 무엇입니까?
편집 내가 이전 테이블에서 50.000 기록와 함께 제공되는 쿼리의 성능을 테스트, 다른 모든 레코드가 새 테이블에 두 개의 행과 일치, 레코드 그래서 절반은 REF_EXISTS = 1 있습니다.
관심있는 사람들을 위해 평균 결과를 답변에 덧붙입니다. 모두에게 감사드립니다!
+1이 쿼리로 7 분이 지난 후 +1입니다. 이것은 하나의 group을 old_table에 조인하기 전에 ref_id를 멋지게 그룹화합니다. 나는 대신 네 표현식 대신 nvl2 (n.ref_id, 1,0)를 사용한다. –
이것은 가장 빠른 쿼리 인 평균 테스트 시간 0.06 초입니다. 그리고 GROUP BY 필요 없음 :) –