MySQL 8 公用表表达式(CTE)—— WITH关键字深入用法

本文介绍了MySQL 8中的公用表表达式(CTE),通过WITH关键字来简化复杂查询。CTE提供了一种在单个语句内创建临时结果集的方法,提高代码可读性和维护性。内容涵盖基础的非递归CTE,递归CTE用于计算累加和及递归查询,并展示了CTE如何与INSERT、UPDATE、DELETE操作结合使用,提供实用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

公用表表达式(CTE)是一个命名的临时结果集,它存在于单个语句的范围内,可以在该语句中引用,可能多次。对于逻辑复杂的SQL,可以大大减少临时表的数量,提升代码的可读性、可维护性。

更多介绍请查看官网:
https://dev.mysql.com/blog-archive/mysql-8-0-labs-recursive-common-table-expressions-in-mysql-ctes/

https://dev.mysql.com/blog-archive/mysql-8-0-labs-recursive-common-table-expressions-in-mysql-ctes-part-two-how-to-generate-series/

二、常用表表达式(WITH AS)

WITH AS<