개발

LATERAL JOIN에 대해 알아보자.

31514 2025. 3. 17. 17:56

LATERAL JOIN은 SQL에서 제공하는 강력한 쿼리 기능으로, 일반적인 JOIN과는 다르게 작동한다.

LATERAL JOIN의 특징은 오른쪽 테이블이 왼쪽 테이블의 각 행을 참조할 수 있다는 점이다.

파이썬 코드로 표현하면 다음과 같다.

for row1 in 왼쪽_테이블:
    for row2 in 오른쪽_테이블:
        # 작업

 

SQL 쿼리문은 다음과 같이 작성되는데, 일반 JOIN문과 달리 ON 조건이 없는 것을 확인할 수 있다.

-- 왼쪽 테이블 당 매칭되는 오른쪽 테이블의 행을 3개씩만 가져오고 싶은 경우
SELECT *
FROM 왼쪽 테이블 left
CROSS JOIN LATERAL (
    SELECT *
    FROM 오른쪽 테이블
    WHERE 특정 조건
    LIMIT 3
) right;

 

CROSS JOIN LATERAL 뿐 아니라, LEFT JOIN LATERAL도 사용할 수 있다.

하지만 경우에 따라 윈도우 함수 + 서브 쿼리 방식이 더 효율적일 수 있으니, 실행 계획을 확인해보면 좋을 거 같다.