여정의 기록

[MySql] WITH RECURSIVE 가상 테이블 이용하기 본문

공부/Algorithm

[MySql] WITH RECURSIVE 가상 테이블 이용하기

Chelsey 2023. 1. 3. 09:36
728x90

MySql에서도 반복문을 이용해 원하는 조건의 정보로 추출할 수 있다.

 

WITH RECURSIVE 테이블명1 AS (
	원하는 조건
    반복문 ...
)

SELECT 테이블명1.SELECT된 값
	 , IF문

일단 상단과 같이 원하는 테이블1을 생성하고 해당 가상 테이블을 아래에서 다시 수정하게 된다.

 

반복문의 경우

SELECT 0 AS CNT 

UNION ALL

SELECT CNT + 1 FROM 테이블명1
 WHERE CNT < 10

1. 초기값을 설정한다.

2. UNION ALL을 이용해 반복문을 덧붙일수 있다.

3. SELECT에 원하는 결과물을 적으면 된다.

3. WEHRE에 반복문의 조건을 쓴다.

 

SELECT 테이블명1.CNT
	, CASE WHEN 테이블명2.CNT IS NULL THEN 0 ELSE CNT END AS CNT

여기서 조건문은

CASE 컬럼
WHEN 조건1 THEN 조건1의 값
ELSE 조건2의 값
END

의 구조로 진행된다.

 

만약 가상 테이블이 두가지이고 합치고 싶다면

FROM table1
LEFT JOIN table2 
	   ON table1.CNT = table2.CNT

JOIN문을 사용하면 된다.

728x90