プログラマーの人であれば、大抵の人が頭を悩ませられる「
再帰呼び出し」の処理。
どんな処理かというと、例を挙げた方がわかりやすいでしょう。
例えば、以下のようなツリー構造の掲示板。
1 記事タイトル
2 ├Re:記事タイトルの返信1
3 │├Re:記事タイトルの返信1の返信1
4 │└Re:記事タイトルの返信1の返信2
5 ├Re:記事タイトルの返信2
6 │└Re:記事タイトルの返信2の返信1
7 ├Re:記事タイトルの返信3
8 │└Re:記事タイトルの返信3の返信1
9 ├・・・
テーブルの構造としては、
ID 親ID タイトル
1 - 記事タイトル
2 1 記事タイトルの返信1
3 2 記事タイトルの返信1の返信1
4 2 記事タイトルの返信1の返信2
5 1 記事タイトルの返信2
6 5 記事タイトルの返信2の返信1
7 1 記事タイトルの返信3
8 7 記事タイトルの返信3の返信1
こんな感じになります。
そして、これをデータとして呼び出すプログラムは、
p1.親IDが無いレコードを抽出
p2.「p1」にあるレコードを親IDにもつレコードを探し、見つかったら、そのレコードを親IDにもつレコードを探し、さらに見つかったら、そのレコードを親IDにもつレコードを探し・・・と繰り返し、親IDをもつレコードが見つからなくなったら終了。
こんな処理になるわけです。難しいですね。