집 짓는 개발블로그
SELECT 시 테이블 Alias 필수 사용 (MySQL) 본문
WITH RECURSIVE CTE AS (
SELECT ID, PARENT_ID, 1 AS GENERATION
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
UNION ALL
SELECT E.ID, E.PARENT_ID, CTE.GENERATION+1
FROM CTE C INNER JOIN ECOLI_DATA E ON C.ID = E.PARENT_ID)
SELECT * FROM CTE;
위 쿼리에서 Unknown Column 에러가 났다. UNION ALL 다음 줄 SELECT에서 CTE.GENERATION을 못 찾겠다는 거다.
SELECT문은 FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT 순으로 실행된다.
이때, FROM에서 테이블에 Alias를 지정했다면 SELECT에서는 반드시! 그 별칭을 사용해줘야 한다.
참고자료
https://dev.mysql.com/doc/refman/8.4/en/problems-with-alias.html
'MySQL' 카테고리의 다른 글
[프로그래머스] 멸종위기의 대장균 찾기 (MySQL) - WITH RECURSIVE cte (0) | 2024.09.09 |
---|---|
WITH RECURSIVE CTE 사용하기 (MySQL) (0) | 2024.09.09 |
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (MySQL) - 2개 이상의 분류로 GROUP BY하기 (0) | 2024.08.13 |
[프로그래머스] 입양 시각 구하기(2) (MySQL) - WITH RECURSIVE CTE (0) | 2024.07.05 |
[프로그래머스] 특정 세대의 대장균 찾기 (MySQL) (0) | 2024.07.05 |