# WITH

WITH 절(Clause)에 있는 쿼리문에 이름을 부여해 필요시 재사용할 수 있으며, 이를 통해 쿼리문을 더 잘 정리하게 됩니다.

WITH 문이 없다면 FROM 절 안에 SELECT, 또 FROM 안에 SELECT가 들어가는 구조가 될 수 있어 쿼리문을 쉽게 파악하기 어려워집니다

WITH 문의 테이블은 하나의 쿼리 문이 실행되는 동안까지만 지속되는 일회성 테이블이고, 여러 번 활용될 수 있습니다.

WITH 문을 Common Table Expressions(CTE)라고 부르기도 합니다.

이름을 정의한 후, AS를 꼭 사용해야 합니다.

WITH name AS (
  SELECT 
    col1
  FROM 
    table1
), name2 AS (
  SELECT
    col2
  FROM 
    table2
)

SELECT
  *
FROM 
  name