sql server
详细
mysql CTE
CTE 是一个命名的临时结果集,作用范围是当前语句。CTE可以理解成一个可以复用的子查询,当然跟子查询还是有点区别的,CTE可以引用其他CTE,但子查询不能引用其它子查询。所以,开发中建议CTE代替子查询,效率比子查询高
CTE 相当于 是 会话级别的 用户变量
子查询 相当于 局部变量的。
CTE 分两种
- 普通公用表表达式
- 递归公用表达式
普通CTE
递归CTE
优点
公用表表达式的作用是可以替代子查询,而且可以被多次引用。
递归CTE 对查询有一个共同的根节点的树形结构数据非常高效。
比如 菜单数据表, 员工组织架构表