개발
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도 사용할 수 있다.
하지만 경우에 따라 윈도우 함수 + 서브 쿼리 방식이 더 효율적일 수 있으니, 실행 계획을 확인해보면 좋을 거 같다.