sql >> Database teknologi >  >> RDS >> Oracle

Rekursiv forespørgsel i Oracle

I Oracle gøres dette nemt ved at bruge 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;

Dette går træet fra top til bund.

Hvis du vil gå i træet fra en enkelt besked til roden, skal du ændre start with og 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. Sådan fungerer MAKEDATE() i MariaDB

  2. Sådan vælger du de rigtige datatyper

  3. Aktiver Python for at oprette forbindelse til MySQL via SSH Tunneling

  4. Indsætter i Oracle Nested Table i Java