Trong Oracle, điều này được thực hiện dễ dàng bằng cách sử dụng 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;
Thao tác này sẽ đưa cây đi từ trên xuống dưới.
Nếu bạn muốn dẫn cây từ một thông điệp đến gốc, hãy thay đổi start with
và connect by
phần:
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