EXISTS 문 관련 질문이요 0 1 709

by 찐감자 [2016.09.03 02:00:59]


SELECT A.COURSE_CODE , A.COUSE_NAME

FROM EC_APPLY B, EC_COURSE A

WHERE  A.COURSE_CODE = B.COUSER_CODE

AND B .YEAR = '2000'

GROUP BY A.COURSE_CODE, B.COURSE_NAME

위와 같은 결과를 출력하는 쿼리가 아래가 맞는지 궁금합니다.

SELECT A.COURSE_CODE,A.COURSE_NAME

FROM EC_COURSE A

WHERE EXISTS ( SELECT * FROM EC_APPLY B

                  WHERE A.COURSE_CODE = B.COUSER_CODE

                  AND B.YEAR = '2000' )

GROUP BY A.COURSE_CODE, B.COURSE_NAME

또한 EXISTS를 사용할떄 EXISTS ( SELECT * FROM ~) 과 EXISTS (SELECT '1' FROM ~)

이런 유형이 많이 보이던데 둘에 차이점이 존재 하나요? 아니면 똑같은 결과를 출력하나요?

답변 부탁드립니다

by jkson [2016.09.04 00:12:09]

두 쿼리의 결과가 동일하겠네요.

또한 A의 PK가 COURSE_CODE라면

아래 쿼리에서 GROUP BY문을 빼셔도 되겠네요.

아래 쿼리가 성능도 더 나을 것으로 보이구요.

EXISTS ( SELECT * FROM ~) 과 EXISTS (SELECT '1' FROM ~) -> 결과 똑같아요.

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