CTE可以实现嵌套查询的效果,那么 CTE和嵌套查询有什么区别?
CTE是用来编写嵌套循环的另一种方式
在 CTE里可以实现递归,在嵌套循环里便不能这么使用了
sql是声明式语言,其知道你所试着做的一切,如果你试着去访问自己所定义的 CTE表格但是没有使用 EXCURSIVE的话,数据库系统是不会让你这么做的
在理想情况下,我们始终希望无需将数据放入本地或者来回移动的情况下,就能够计算整个查询,CTE提供了 作为单个查询所需的性能,尽管复杂性使得新查询优化变得更加困难.
即有了 CTE,你就 无需添加额外的逻辑从数据库外来回获取数据