봉봉의 개인 블로그

2018-04-27(Outer Apply) 본문

입사후 공부한내용

2018-04-27(Outer Apply)

봉봉이네 2018. 4. 27. 09:21

Join을 할때 대상 테이블의 값중에서

특정컬럼의 값이 MAX인 데이터를 가지고 join 하고 싶을때 사용


SQL Server 2005 이상의 버전에서 사용


1
2
3
4
5
6
7
8
select          *
from            MAIN_TABLE A
outer apply     (
                select top 1    * 
                from            JOIN_TABLE B
                where           A.P_key = B.F_key
                order by        B.seq desc
                ) B
cs


그전 버전에서는 아래와 같이 사용


1
2
3
4
5
6
7
8
9
select          *
from            MAIN_TABLE A
left join       JOIN_TABLE B
on              A.P_key =   (
                            select top 1    F_key
                            from            JOIN_TABLE C
                            where           C.F_key = A.P_key
                            order by        C.seq desc
                            )
cs


Comments