Oracleでは、これはCONNECT BY
を使用して簡単に実行できます。
select message_id, parent_id, message_content
from messages
start with message_id = 97 -- this is the root of your conversation
connect by prior message_id = parent_id;
これにより、ツリーが上から下に移動します。
ツリーを単一のメッセージからルートまでたどりたい場合は、start with
を変更してください およびconnect by
パート:
select message_id, parent_id, message_content
from messages
start with message_id = 100 -- this is the root of your conversation
connect by prior parent_id = message_id; -- this now goes "up" in the tree