【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
・前提 【やりたいこと】comment1-2についた全てのコメントを取得したい。 <commentsテーブル>
comments
①parent_idが2のコメントを抽出
parent_id
②更に①に付いているコメントを全て抽出 ◆CTEを使用しない場合
◆CTEを使用した場合
・不明点 まず、CTEを使用したコマンドの中のJOINで結び付けているテーブル「t」は、 parent_idが2の抽出結果の表なので、以下になります。
JOIN
t
comments.parent_id = t.id で比較している部分ですが、 「t.id」について、 idが4と5しかないので、本来であれば parent_idが4の「comment-1-2-1-1」しか表示されないはずですが、 なぜparent_idが6,7の場合のものも表示されるのでしょうか?
comments.parent_id = t.id
t.id
id
comment-1-2-1-1
どのような流れになっているのかが理解できません。 また、最後の「SELECT * FROM t;」の「t」はどのテーブルのことを指しているのでしょうか。 最初に設定したテーブル「t(parent_idが2の抽出結果)」からどんどんループで増えているのでしょうか?そうだとしてもその流れが分かりません。
SELECT * FROM t;
お手数をおかけしますが、詳細にご教示いただけますと幸いです。 よろしくお願いいたします。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
・前提

【やりたいこと】comment1-2についた全てのコメントを取得したい。
<
commentsテーブル>①

parent_idが2のコメントを抽出②更に①に付いているコメントを全て抽出

◆CTEを使用しない場合
◆CTEを使用した場合

・不明点

まず、CTEを使用したコマンドの中の
JOINで結び付けているテーブル「t」は、parent_idが2の抽出結果の表なので、以下になります。comments.parent_id = t.idで比較している部分ですが、「
t.id」について、idが4と5しかないので、本来であればparent_idが4の「comment-1-2-1-1」しか表示されないはずですが、なぜ
parent_idが6,7の場合のものも表示されるのでしょうか?どのような流れになっているのかが理解できません。
また、最後の「
SELECT * FROM t;」の「t」はどのテーブルのことを指しているのでしょうか。最初に設定したテーブル「
t(parent_idが2の抽出結果)」からどんどんループで増えているのでしょうか?そうだとしてもその流れが分かりません。お手数をおかけしますが、詳細にご教示いただけますと幸いです。
よろしくお願いいたします。