Q&A

  • [질문] 오라클 쿼리 문좀 알려 주십시요... not in, not Exist, minus...
A 원본 Table            B table          
Af1          Af2         Bf1          Bf2                          결과물          
----------------         ----------------                         .................
01         abc          01         abc                          02         abc      
02         abc          03         abc                          04         abc      
03         abc          04         Err        ==>            05         abc      
04         abc          06         abc                          07         abc      
05         abc          07         Err         ==>           08         abc      
06         abc          10         abc                          09         abc      
07         abc
08         abc
09         abc
10         abc

A라는 테이블의 원본 데이타 필드를 가지고서 다른 테이블의 데이타를 비교 하여
결과물을 추출 하려고 합니다.

위와 같은결과물을 얻으려고 하는데, not in 이나 , not Exist, minus ..
모 별의별 쿼리문을 써도 제대로 된 결과물이 안나오네요. ㅡ.ㅡ;
다른 방법이 있을까요 ?
약 백만건의 데이타라 일일히 for 문을 돌리니.. 하루 웬종일 걸리고..
조금 빠르게 위와 같은 결과를 얻을 수 있는 방법은 없을까요 ?
도움 주시면 감사하겠습니다.
3  COMMENTS
  • Profile
    깔쌈보이 2009.06.11 02:56
    select *
    from a where af1 not in (select bf1 from b)

    이거 아닌가요?
    혹시 Af1과 Bf1의 필드타입이나 길이 등이 틀린게 아닐까요?
  • Profile
    공성환 2009.06.11 09:42
    테이블 a,b 생성후 나열된건 그대로 입력하고...
    select *
    from table_a
    minus
    select *
    from table_b

    요렇게 하면 바로 결과물과 같이 나오는데... 다른 뭔가가 있나요?
  • Profile
    유준호 2009.06.11 18:04
    답변 주셔서 감사 합니다.
    제가 착각 한 부분이 있군요..
    B 테이블엔... bf1 필드가 없습니다... ㅡ.ㅡ;
    그리고, B 테이블가 A 테이블의 필드 갯
    급하게 올리다 보니 실수 했네요.

    일의 진행이 돌아가는 걸 보면..
    편지봉투 마킹을 하는 작업인데.. 컨베어에서. 봉투가 계속 지나가고.. 그걸. 프린터가 프린트를 하면
    뒷부분에 카메라가 봉투가 들어오는 순서대로. 바코드를 판독해 DB 에 순서대로 쌓아 둡니다. (B 테이블. )
    이걸 나중에 작업이 끝나고. 검증하는 작업인데.. 중간, 중간 봉투가 프린트 하기전에 아래로 에러박스로 떨어지는 경우도 있고,
    카메라가 바코드를 제대로 인식하지 못하는 경우도 발생해서.. 다시 프린팅 할 dB 목록을 생성하는 것이 관건인데..

    해결이 쉽지 않네요 ㅡ.ㅡ; 죄송하지만. 다시 함 봐주심 감사 하겠습니다.