是否有任何数据库支持相互递归查询
问题描述:
我已经尝试的SQL Server,DB2,PostgreSQL和Mysql.Some支持递归的基本功能,没有人支持相互递归这样的:是否有任何数据库支持相互递归查询
WITH RECURSIVE
x (id) AS (SELECT 1 UNION ALL SELECT id+1 FROM y WHERE id < 5),
y (id) AS (SELECT 1 UNION ALL SELECT id+1 FROM x WHERE id < 5)
SELECT * FROM x;
答
有可能:只使用second cte
(y (id)
)作为子查询
WITH
x (id) AS (SELECT 1
UNION ALL
SELECT y.id+1 FROM
(SELECT 1 id UNION ALL SELECT id+1 FROM x WHERE id < 5) y
WHERE y.id < 5)
SELECT * FROM x;
此方法适用于你提到大多数的RDBMS。 但这样的查询可能会放入一个无限循环。