In Oracle geht das ganz einfach mit 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;
Dadurch wird der Baum von oben nach unten durchlaufen.
Wenn Sie den Baum von einer einzelnen Nachricht bis zur Wurzel durchlaufen möchten, ändern Sie den start with
und den connect by
Teil:
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