Обсуждение: Recursive select

Поиск
Список
Период
Сортировка

Recursive select

От
"Martin Smetak"
Дата:
Hi all!

Anyone know if it's possible to make a recursive select from a table ?
My problem: I got a table of "some categories" which all points to its
parrent one(tree)...shown below. And I want to select all names of
parrent categories of one child, lets say "fast[4]". Now I'm solving that
with
many SQL queries like : "SELECT main_id FROM cat WHERE id=4;"....but I would
like to optimize this.

Anyone can help or point me to a way ??

Thanks a lot,Minca

Table : CAT
ID        |        Main_id        |    Name
=========================
1                    0                    Car
2                    1                    Crash
3                    1                    Wash
4                    3                    Fast
5                    1                    Second_hand
6                    0                    House
7                    3                    Slow
....etc

*(root)[0]
-Car[1]       -Crash[2]       -Wash[3]           -Fast[4]           -Slow[7]       -Second hand[5]
-House[6]



Re: Recursive select

От
Martín Marqués
Дата:
On Mié 23 May 2001 12:07, you wrote:
> Hi all!
>
> Anyone know if it's possible to make a recursive select from a table ?
> My problem: I got a table of "some categories" which all points to its
> parrent one(tree)...shown below. And I want to select all names of
> parrent categories of one child, lets say "fast[4]". Now I'm solving that
> with
> many SQL queries like : "SELECT main_id FROM cat WHERE id=4;"....but I
> would like to optimize this.
>
> Anyone can help or point me to a way ??

Sub-selects maybe?

SELECT main_id FROM cat WHERE id=(SELECT ID FROM cat WHERE name=crash)

Could this be what yo want?

Saludos.... :-)

> Thanks a lot,Minca
>
> Table : CAT
> ID        |        Main_id        |    Name
> =========================
> 1                    0                    Car
> 2                    1                    Crash
> 3                    1                    Wash
> 4                    3                    Fast
> 5                    1                    Second_hand
> 6                    0                    House
> 7                    3                    Slow
> ....etc
>
> *(root)[0]
> -Car[1]
>         -Crash[2]
>         -Wash[3]
>             -Fast[4]
>             -Slow[7]
>         -Second hand[5]
> -House[6]


-- 
Cualquiera administra un NT.
Ese es el problema, que cualquiera administre.
-----------------------------------------------------------------
Martin Marques                  |        mmarques@unl.edu.ar
Programador, Administrador      |       Centro de Telematica                      Universidad Nacional
        del Litoral
 
-----------------------------------------------------------------