2015-04-12 52 views
2

我已经尝试的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; 

回答

0

有可能:只使用second ctey (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。 但这样的查询可能会放入一个无限循环

相关问题