Outer apply

|

JOIN과는 다른 실행계획을 가질 수 있으며 일반 INNER/OUTER JOIN으로는 수행 불가능한 구문을 수행시켜주기도함.


1. 서브쿼리에 외부테이블의 컬럼을 인자로 사용할 수 있다
2. 테이블 반환함수의 인자값으로 외부테이블의 컬럼을 적용하여 JOIN과 같은 결과값을 낼 수 있다

 

SELECT
	...
    
FROM DDD

LEFT OUTER JOIN ...

-- join 절 result가 2개 일 경우, 아래와 같이 1개만 가져오도록 처리
OUTER APPLY (SELECT TOP 1 * 
              FROM AAA
             WHERE ...
             ) ZZZ
             
...
And