このディレクトリの索引

# 出典 :: SQL質疑応答スレ 12問目 # # 掲示板をつくっています。 # ・親投稿 #  └ 子投稿 #  └ 子投稿 # のように1つだけコメントができる仕様で、 # 親・子投稿は以下のテーブルに格納されます。 # post # - id(PK) # - parent_id(postのIDでこれが0なら親、その他INTなら子) # - その他、投稿に関する情報(タイトル、本文など) # 上記のようなテーブルから、 # 親投稿にぶらさがる子投稿をまとめて取得するのはSQLではどう書けばいいでしょうか? # # ちなみに現在は、WHERE parent_id = 0 で親を取得して、 # その後取得した各レコードのidがparent_idに入っている投稿をループして取得しています。 # なので、20個の投稿とコメント取得する場合、21個のSQLを発行してしまっています。 # これを1回で取ってきたいです。 # 親を指定して関連する投稿を全てとりだす(_parent_id,_親のその他投稿に関する情報,[_id,_parent_id,_その他投稿に関する情報]) :- 掲示板(_parent_id,0,_親のその他投稿に関する情報), 掲示板(_id,_parent_id,_その他投稿に関する情報). '親を指定して関連する投稿を全てとりだす。これを1回で取ってきたいです'(_親を指定して関連する投稿全て) :- findall([_id,_parent_id,_その他投稿に関する情報],( 親を指定して関連する投稿を全てとりだす(_parent_id,_親のその他投稿に関する情報,[_id,_parent_id,_その他投稿に関する情報])),_親を指定して関連する投稿全て).