首先了解with用法,with相当于对sql的执行结果临时起一个别名,以便于之后的select使用。
with recursive tablename([col1]) as ( SQL )
这里目的是对SQL的执行结果赋给tablename,执行结果的字段类型和数量要和tablename声明的字段[col1]类型和数量一致
SQL的格式: 初始值 union all 递归sql
初始值:可以是一个select SQL 也可以是具体值,同样这个值的字段数量、类型要与tablename声明的字段[col1]类型和数量一致
递归sql:select 后面的字段名要与tablename声明的字段[col1]类型和数量一致,且其中一个或多个字段要作为循环体,比如col1 - 1
一定要有where语句 where里一定要写循环终止条件