본문 바로가기
SQL

SQL - LATERAL

by sinabeuro 2021. 10. 5.
728x90

Lateral은 PostSql에만 있는 문법입니다.

join할 때 각 row 별로 for-each문처럼 join할 row를 고를 수 있습니다.

또한 lateral 안에서는 외부 스코프를 볼 수 있습니다.

즉, 외부에서 변수 개념으로 컬럼 값을 넘겨줄 수 있습니다. 

select *
from tpd_prd prd
left join lateral (
  select
      SUM(tstc.real_stck_qty) as stck_qty
      , SUM(tstc.temp_stck_qty) as temp_stck_qty
  from ecomms.tpd_stock tstc
  inner join ecomms.tpd_opt_value val
  on prd.prd_no=tstc.prd_no and val.stock_no=tstc.stock_no and val.prd_no=tstc.prd_no and val.opt_item_no = 1
) stc on true

lateral 구문 안을 보면 prd 테이블 데이터를 파라미터로 사용하는 것을 볼 수 있습니다.

 

기본 구문은 left join lateral ( ... ) as 약칭 on true 입니다.

 

 

 

 

https://velog.io/@keum0821/SQL-LATERAL

 

SQL - LATERAL

최근에 PostgreSQL에서 제공하는 LATERAL에 대해 알게 되면서 이에 대해 정리해보기로 했다.PostgreSQL을 통해 LATERAL을 적용하는 예제 및 설명은 이 문서가 가장 좋았던 것 같다.지금까지는 MySQL만 써보

velog.io

 

728x90

'SQL' 카테고리의 다른 글

SQL - partition by 성능개선  (0) 2021.10.07
SQL - Array 정리  (0) 2021.10.05
SQL - WITH RECURSIVE 문(재귀 쿼리)  (0) 2021.04.23

댓글