sql >> Databasteknik >  >> RDS >> PostgreSQL

Enkel grafsökningsalgoritm i SQL (PostgreSQL)

Något så här:

with recursive graph_cte (node1, node2, start_id) 
as
( 
  select node1, node2, id as start_id
  from graphs
  where node1 = 1 -- alternatively elect the starting element using where id = xyz
  union all
  select nxt.node1, nxt.node2, prv.start_id
  from graphs nxt
    join graph_cte prv on nxt.node1 = prv.node2
)
select start_id, node1, node2
from graph_cte
order by start_id;

(kräver PostgreSQL 8.4 eller högre)



  1. Hur man kontrollerar i realtid om en ny rad har lagts till i MySQL-tabellen

  2. Mutex analog i SQL?

  3. guide som primärnyckel?

  4. Generera Doctrine-Entity automatiskt från befintlig tabell