반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MYSQL] With 절 사용 방법
SQL/MYSQL

[MYSQL] With 절 사용 방법

2023. 3. 13. 09:45
728x90
반응형

 

MySQL에서 'WITH'절은 서브쿼리를 만들고 재사용 가능한 공통 테이블 표현식(Common Table Expression, CTE)을 정의하는 방법입니다. 

WITH절을 사용하여 쿼리를 단순화하고 가독성을 높일 수 있습니다.

다음은 WITH절을 사용하는 기본적인 구문입니다.

WITH [cte_name] AS (
   SELECT [column_name(s)]
   FROM [table_name]
   WHERE [condition]
)
SELECT [column_name(s)]
FROM [table_name]
JOIN [cte_name] ON [join_condition]
WHERE [condition];

위 구문에서 cte_name은 임의의 이름으로, 서브쿼리에서 반환된 결과를 참조할 수 있는 임시 테이블의 이름입니다.

서브쿼리 내에서 SELECT문을 사용하여 데이터를 검색하고, 해당 결과 집합을 cte_name으로 정의한 CTE에 저장합니다.

그런 다음 CTE를 메인 쿼리에서 참조하여 추가 데이터를 가져올 수 있습니다.

다음은 실제 예제입니다. 

이 예제에서는 부서 이름이 'Sales'인 모든 직원의 이름, 직책 및 급여 정보를 가져오는 쿼리를 작성합니다.

WITH SalesEmployees AS (
   SELECT FirstName, LastName, JobTitle, Salary
   FROM employees e
   JOIN departments d ON e.DepartmentID = d.DepartmentID
   WHERE DepartmentName = 'Sales'
)
SELECT FirstName, LastName, JobTitle, Salary
FROM SalesEmployees;

위 예제에서는 부서 이름이 'Sales'인 모든 직원의 이름, 직책 및 급여 정보를 가져오기 위해, SalesEmployees라는 CTE를 정의합니다.

이후 SalesEmployees CTE를 메인 쿼리에서 참조하여 결과를 가져옵니다.

이와 같이 WITH절을 사용하면, 하나 이상의 서브쿼리에서 반환된 데이터를 단일 쿼리에서 재사용할 수 있습니다. 

이는 코드 중복을 줄이고 쿼리의 가독성을 향상시키는 데 도움이 됩니다.

728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MYSQL] Coalesce 함수 Null이 아닌 값 반환 사용 방법  (0) 2023.03.22
[MYSQL] INNER, LEFT, RIGHT, FULL JOIN 쿼리 사용 방법  (0) 2023.03.19
[MYSQL] Copy table, Insert Into / 테이블 복사 쿼리  (0) 2023.03.16
[MYSQL] Date_add 함수 사용 방법  (0) 2023.03.14
[MYSQL] Create Temp Table / 임시 테이블 생성 쿼리  (0) 2023.03.13
[MYSQL] Truncate Table / 테이블 전체 데이터 삭제 사용 방법  (0) 2023.03.07
[MYSQL] Drop Table / 테이블 삭제 쿼리  (0) 2023.03.07
[MYSQL] Update Table / 테이블 데이터 업데이트 쿼리  (0) 2023.03.06
    'SQL/MYSQL' 카테고리의 다른 글
    • [MYSQL] Copy table, Insert Into / 테이블 복사 쿼리
    • [MYSQL] Date_add 함수 사용 방법
    • [MYSQL] Create Temp Table / 임시 테이블 생성 쿼리
    • [MYSQL] Truncate Table / 테이블 전체 데이터 삭제 사용 방법
    Ant_U
    Ant_U

    티스토리툴바