WITH 구문은 메모리 상에 가상의 테이블을 생성하여 저장한다. RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 가능하다.
-- 테이블 명을 사용하여 값을 참조할 수 있으며, 테이블의 행 수 만큼 반복된다.
WITH DONKKAAS AS (
SELECT 0 AS NUM
UNION ALL
SELECT 0 FROM [TABLE]
)
-- 가상 테이블을 생성하고, 가상 테이블의 값을 참조할 수 있다.
WITH DONKKAAS AS (
SELECT 0 AS NUM
UNION ALL
SELECT NUM+1 FROM DONKKAAS
WEHRE NUM < 50
)
위 구문을 통해 0부터 50까지의 값을 가진 임시 테이블을 생성할 수 있다.
WITH, WITH RECURSIVE 구문은 MySQL 8.0 이상 버전에서 사용이 가능하다!!!