[MySQL] WITH RECURSIVE 재귀쿼리

알파·2022년 10월 31일
0
post-custom-banner

WITH

  • CTE(common table expression)을 생성하는 문법

CTE 정의

  • CTE란 해당 SQL문 내에서만 존재하는 일시적인 테이블(결과의 집합)을 말한다.

WITH RECURSIVE

  • 메모리 상에 가상의 테이블을 저장
  • 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터 삽입을 하지 않아도 가상테이블을 생성할 수 있다.
WITH RECURSIVE 테이블명 AS(SELECT 초기값 AS 컬럼별명1 UNION ALL SELECT 컬럼별명1 계산식 FROM 테이블명 WHERE 제어문 

Example

h(컬럼)이 초기값 1부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성

WITH RECURSIVE CTE AS (
	SELECT 1 AS h 
    UNION ALL
    SELECT h+1 FROM CTE WHERE h < 5;
)

출처 : 여기

profile
I am what I repeatedly do
post-custom-banner

0개의 댓글