월급루팡

서브쿼리 - 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 정보를 가져오는 것이다.