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 |