이전

MySQL의 WITH절

MySQL의 WITH 절은 일명 Common Table Expressions(CTE, 공통 테이블 표현식)를 정의하는 데 사용됩니다. CTE는 단일 SELECT, INSERT, UPDATE, DELETE 또는 CREATE VIEW 문장 내에서 참조할 수 있는 명명된 결과 집합을 생성합니다. 이렇게 함으로써 복잡한 쿼리를 더 간결하고 읽기 쉽게 만들 수 있습니다.

WITH cte_name AS (
  -- CTE에 대한 SQL 쿼리
)
SELECT * FROM cte_name;

위의 코드에서 cte_name은 공통 테이블 표현식의 이름이며, – CTE에 대한 SQL 쿼리 부분은 해당 CTE를 정의하는 SQL 쿼리입니다. 이 CTE는 후속의 SELECT 문에서 마치 실제 테이블이나 뷰인 것처럼 참조할 수 있습니다.

또한, WITH 절은 여러 개의 CTE를 동시에 정의할 수 있으며, 각 CTE는 콤마로 구분됩니다:

WITH cte_name1 AS (
  -- CTE1에 대한 SQL 쿼리
),
cte_name2 AS (
  -- CTE2에 대한 SQL 쿼리
)
SELECT * FROM cte_name1
JOIN cte_name2 ON ... ;

위 코드에서 cte_name1과 cte_name2는 각각 다른 CTE를 정의하고 있습니다. 이들은 후속의 SELECT 문에서 함께 사용될 수 있습니다.