WITH修飾子で非再帰的問合わせと再帰的問合わせを混合する場合、すべての前方CTE参照またはすべての後方CTE参照を指定する必要があります。前方CTE参照と後方CTE参照を混合することはできません。
この例では、テーブルの定義は次のとおりです。
CREATE TABLE t1(a1 INT, b1 INT);
これらの文は、テーブルにデータの行を挿入します。
INS t1(1,2); INS t1(1,4); INS t1(2,3); INS t1(3,4);この文には再帰的クエリーs3およびs4が含まれています。
WITH RECURSIVE s3 (MinVersion) AS (SELECT a1 FROM t1 WHERE a1 > 1 UNION ALL SEL MinVersion FROM s3 WHERE MinVersion > 3), RECURSIVE s4(MinVersion) AS (SELECT a1 FROM t1 WHERE a1 = 2 UNION ALL SEL MinVersion FROM S4 WHERE MinVersion > 2) SEL * FROM s3,s4;
この問合わせは、以下のような応答セットを返します。
MinVersion | MinVersion |
---|---|
3 | 2 |
2 | 2 |