WHERE 절 EXISTS 구문 사용한 조회 시 0 4 3,694

by 송병철 EXISTS [2014.01.08 18:09:27]


안녕하세요. 횐님들 새해 복 많이 받으세요.~
잘 몰라서 질문 드립니다.

WHERE 조건절 ....
에 아래와 같은 EXISTS문이 있습니다.

 AND  EXISTS ( SELECT  1 < <--A절이라 가정하고  240여개의 데이터 존재
   FROM  AA_SEARCH_TERM I , TB_COMPANY_COUNCIL K1
  WHERE  K1.COMP_NO     = C.COMP_NO
    AND  I.PROGRAM_ID = 'NKE_A1Q040'
    AND  I.PART_GROUP_NO  = :PART_GROUP_NO
    AND  I.PART_GUBUN = '005'
    AND  TRIM(I.VAR_NO2)  = K1.CODE
    AND  K1.GUBUN   = '1'
    AND  K1.DELETE_DATE IS NULL
    AND  K1.EXP_DATE IS NULL
    ) 
   AND EXISTS ( SELECT  1  < <--B절이라 가정하고  14여개의 데이터 존재
  FROM  AA_SEARCH_TERM J ,TB_COMPANY_COUNCIL K2
WHERE  K2.COMP_NO     = C.COMP_NO
   AND  J.PROGRAM_ID = 'NKE_A1Q040'
   AND  J.PART_GROUP_NO  = :PART_GROUP_NO
   AND  J.PART_GUBUN = '005'
   AND  TRIM(J.VAR_NO3)  = K2.CODE
   AND  K2.GUBUN   = '2'
   AND  K2.DELETE_DATE IS NULL
   AND  K2.EXP_DATE IS NULL
    )   

질문 사항
EXISTS  구문으로 하나씩 따로 따로 조회를 하게 되면
B절 막고 A절에 해당되는 240여개의  데이터 검색됩니다.
A절을 막고 B절에 해당되는 14여개의  데이터 검색됩니다.
그런데 두개 A 와 B 를 동시에 사용하게 되면 데이터 검색 안됩니다.
A절에 해당되는 240여개의 데이터 + B절에 해당되는 데이터 14여개 =  254여개의 데이터 조회
가 되야 되는거 아닌가요???
이해가 잘 안되네요....왜 그렇죠???
by 용근님 [2014.01.08 18:32:59]
AND 절하고 OR 절하고 햇갈리시는건?

by 송병철 [2014.01.08 18:42:52]

아 죄송합니다. 제가 멍청한 질문을 올린것같네요...

A조건 검색 선택과 B조건 검색 선택시
A절의 조건에도 해당되고 B절의 조건에도 해당되는 데이터를 검색하고 싶은데....
방법이 없을까요???


by 마농 [2014.01.09 07:47:30]
용근님 말처럼 AND 와 OR 를 착각하고 계시네요.
두개 조건 모두 만족하려면 AND 이며 위에 하신 결과(0건)이 정상입니다.
A절의 조건에도 해당되고 B절의 조건에도 해당되는 데이터는 없습니다.
A절의 조건에 해당되거나 B절의 조건에 해당되는 데이터를 찾는다면 OR 죠.

2개 Exists 구문 따로 쓰지 마시고 하나로 합치세요.
그리고 선택조건에 따라 k1.gubun 조건만 다르게 주세요.
k1.gubun IN ('1') -- a 선택
k1.gubun IN ('2') -- b 선택
k1.gubun IN ('1','2') -- a,b 둘다 선택

by 송병철 [2014.01.09 11:19:04]

마농님 답변에 정말 감사드립니다.~
문제 해결에 많이 접근했습니다.
고맙습니다. 답변 주신 용근님 , 마농님 새해 복 많이 받으세요~~^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입