>데이터 베이스 >MySQL 튜토리얼 >단일 SQL 쿼리에서 재귀 CTE를 포함한 여러 CTE를 결합하려면 어떻게 해야 합니까?

단일 SQL 쿼리에서 재귀 CTE를 포함한 여러 CTE를 결합하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-31 21:44:14272검색

How Can I Combine Multiple CTEs, Including Recursive Ones, in a Single SQL Query?

단일 SQL 쿼리의 여러 CTE

SQL에서는 단일 쿼리 내에서 여러 CTE(공통 테이블 표현식)를 결합하는 것이 가능합니다. . 이를 위해서는 쿼리 시작 부분에 WITH 키워드를 한 번 사용해야 합니다.

예:

결합하려는 경우 하나의 재귀 CTE와 두 개의 비재귀 CTE. 다음 구문을 사용하면 됩니다.

WITH RECURSIVE
  cte1 AS (...),
  cte2 AS (
    SELECT ...
    UNION ALL
    SELECT ...
  ),
  cte3 AS (...)
SELECT ... FROM cte3 WHERE ...

이 예에서

  • cte1은 재귀 CTE입니다.
  • cte2는 비재귀적입니다. CTE.
  • cte3은 비재귀적 CTE입니다.

참고: RECURSIVE인 경우 CTE의 순서는 중요하지 않습니다. 키워드가 사용됩니다.

재귀적 CTE:

재귀 CTE는 정의에서 자신을 참조할 수 있습니다. 이를 통해 계층적 또는 트리형 구조를 구축할 수 있습니다. 위의 예에서 cte2는 UNION ALL 절에서 자신을 참조하므로 재귀 CTE입니다.

비재귀 CTE:

Non -재귀 CTE는 나중에 쿼리에서 참조할 수 있는 임시 테이블을 정의합니다. 위의 예에서 cte1cte3은 비재귀적 CTE입니다.

위 내용은 단일 SQL 쿼리에서 재귀 CTE를 포함한 여러 CTE를 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.