老师,关于 ‘ WITH RECURSIVE’中的‘RECURSIVE’我有一个疑问
来源:6-39 【实战】 公共表表达式-1

ericdemon
2019-08-06
WITH RECURSIVE test AS (
SELECT 1 AS n
UNION ALL
SELECT 1+n FROM test WHERE n < 10
)
SELECT * FROM test ;
老师,为什么在公共表达式中 加了 UNION ALL
然后后面跟上 SELECT 1+n FROM test WHERE n < 10
就可以做循环了呢?
当我把SQL语句改成这样时就值调用了一次
WITH RECURSIVE test AS (
SELECT 1 AS n
)
SELECT * FROM test ;
之前对UNION ALL
的理解是可以将表和表的数据做合并,但是为什么可以在公共表达式中做无限循环。。
写回答
1回答
-
这是一种嵌套调用,你有没有发现在Union all中引用了with定义的临时表。
052019-08-08
相似问题