in reply to sql adjacency list

Hi boulevard,
You didnt mention which database you are using. ORACLE support hierarchical relationship with CONNECT BY and PRIOR. But mySQL doesnt support this. You need to write recursion for this. Consider the following table to check how to use connect by.
create table test_connect_by ( parent number, child number, constraint uq_tcb unique (child) );
insert into test_connect_by values ( 5, 2); insert into test_connect_by values ( 5, 3); insert into test_connect_by values (18,11); insert into test_connect_by values (18, 7); insert into test_connect_by values (17, 9); insert into test_connect_by values (17, 8); insert into test_connect_by values (26,13); insert into test_connect_by values (26, 1); insert into test_connect_by values (26,12); insert into test_connect_by values (15,10); insert into test_connect_by values (15, 5); insert into test_connect_by values (38,15); insert into test_connect_by values (38,17); insert into test_connect_by values (38, 6); insert into test_connect_by values (null,38); insert into test_connect_by values (null,26); insert into test_connect_by values (null,16);
select lpad(' ',2*(level-1)) || to_char(child) s from test_connect_by start with parent is null connect by prior child = parent;
This query will yield result like this
38 15 10 5 2 3 17 9 8 6 26 13 1 12 16


- perl_lover

Replies are listed 'Best First'.
Re^2: sql adjacency list
by Anonymous Monk on May 18, 2012 at 11:27 UTC
    its not working in sql 2005