はじめまして。質問させていただきます。
WITH RECURSIVE t AS (
-- n = 1
SELECT * FROM comments WHERE parent_id = 2
UNION ALL
-- n >= 2
SELECT
comments.*
FROM
comments JOIN t
ON
comments.parent_id = t.id
)
SELECT * FROM t;
今回「2 回目以降再帰的に実行される処理」として記載されている部分で
t
が用いられていますが(FROM comments JOIN t
のところです)、
なぜ最初の階層 (n = 1
) で実行された処理が t
となるのかが
よくわかりませんでした。
最初の WITH RECURSIVE t AS()
の部分は、
丸括弧内のすべてにかかっているように見えるので、
t
はこの場合 SELECT * FROM t;
の直前部分までを
示すことになるのではないかと思ったからです。
よろしければ、回答をいただければ幸いです。
よろしくお願いいたします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?