월급루팡
서브쿼리 - EXISTS ( SELECT 'x' 는 무엇일까
우주코딩
2022. 2. 22. 09:24
SELECT CUSTOMER_RELATION
,RELATION_TYPE
,CUSTOMER_ID
,CUSTOMER_NUMBER
,CUSTOMER_NAME
,DEST_ADDR
FROM CUSTOMER_RELATION
WHERE EXISTS ( SELECT 'X'
FROM CUSTOMER
WHERE CUSTOEMR_ID = #{CUSTOMER_ID)
AND CUSTOMER_RELATION_YN = 'Y')
서브 쿼리에서 이 SELEC 'X' 의 의미는 무엇인가
EXISTS 의 경우 일반적인 서브쿼리 수행순서와 다르게 메인쿼리부터 작업이 수행된다
비교적 데이터가 적은 테이블을 먼저 읽어 수행시간이 빨라질 수 있다
EXISTS
한 테이블이 다른 테이블과 외래키(FK)와 같은 관계가 있을 때 유용하다. EXISTS를 활용여부는 쿼리문을 사용하는 이유를 생각하면 파악할 수 있다.
사실 'X' 는 쿼리 만든이가 지정한 상수일 뿐 다른 상수를 지정해도 된다
위의 쿼리를 풀어보면 CUSTOMER 테이블에서 해당 서브쿼리의 조건을 만족하는 CUSTOMER가 있다면
그 CUSTOMER의 CUSTOMER_RELATION 정보를 가져오는 것이다.