sql >> Databasteknik >  >> RDS >> Oracle

Rekursiv fråga i Oracle

I Oracle görs detta enkelt med 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;

Detta går trädet från topp till botten.

Om du vill gå i trädet från ett enda meddelande till roten, ändra start with och connect by del:

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


  1. Fullständig lista över teckenuppsättningar som stöds av MariaDB

  2. Tips för att leverera MySQL-databasprestanda - del två

  3. Hitta längden på den längsta raden i en kolumn i orakel

  4. Importera CSV-fil till SQL Server