# MySQL中WITH...AS的用法是什么 在MySQL中,`WITH...AS`语法(又称**公共表表达式**,Common Table Expression,简称CTE)是SQL:1999标准引入的特性,MySQL从8.0版本开始支持。它用于创建临时命名结果集,提升复杂查询的可读性和复用性。 ## 基本语法 ```sql WITH cte_name AS ( SELECT column1, column2 FROM table1 WHERE condition ) SELECT * FROM cte_name;
简化复杂查询
将多级嵌套的子查询拆分为可命名的临时表,例如:
WITH dept_stats AS ( SELECT department, AVG(salary) avg_sal FROM employees GROUP BY department ) SELECT * FROM dept_stats WHERE avg_sal > 5000;
递归查询
支持WITH RECURSIVE
处理层级数据(如树形结构):
WITH RECURSIVE tree_path AS ( SELECT id, name FROM nodes WHERE id = 1 UNION ALL SELECT n.id, n.name FROM nodes n JOIN tree_path tp ON n.parent_id = tp.id ) SELECT * FROM tree_path;
注意:CTE仅在当前查询中有效,与临时表不同,不占用存储空间。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。