A Common Table Expression (CTE) gives a subquery a name using the WITH clause, letting you build complex logic in clean, readable steps. Since MySQL 8, CTEs have become the professional standard for structuring analytical queries.
Key Points
- Syntax: WITH monthly_sales AS (SELECT …) SELECT * FROM monthly_sales;
- Chain multiple CTEs separated by commas — each can reference the previous
- Massively improves readability over deeply nested subqueries
- A CTE exists only for the duration of its statement
- Reference the same CTE multiple times in one query
- Recursive CTEs (WITH RECURSIVE) handle hierarchies and sequences
.png)