Re: Problema con consulta simple

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con consulta simple
Date: 2007-02-28 12:40:39
Message-ID: 45E57847.6040608@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Sergio escribió:

>
> El problema es el siguiente:
>
> He creado una tabla para intentar hacer consultas recursivas
>
> pruebas=# create table delegaciones (
> id_delegacion serial primary key,
> nombre varchar,
> padre int references delegaciones(id_delegaciones)
> );
>
>
> He insertado unos cuantos valores con :
>
> pruebas=# INSERT INTO delegaciones (nombre, padre) values ('XXXX',
> (select id_delegacion from delegaciones where nombre='YYYYYY'));
>
>
> Al final los valores en la tabla son los siguientes:
>
>
> pruebas=# select * from delegaciones;
> id_delegacion | nombre | padre
> ---------------+---------------+-------
> 1 | principal | 1
> 2 | Barcelona | 1
> 3 | madrid | 1
> 4 | gerona | 1
> 5 | lleida | 1
> 6 | rubi | 2
> 7 | sant cugat | 2
> 8 | terrassa | 2
> 9 | castellana | 3
> 10 | lavapies | 3
> 11 | ximelis | 6
> 12 | can serrafosa | 6
> 13 | casa | 11
> (13 filas)
>
> Duración: 0,302 ms
>
>
> Y aqui está el problema, cuando el padre es 3 no encuentra nada
>
> pruebas=# select * from delegaciones where padre in (select
> id_delegacion from delegaciones where padre = 3);
> id_delegacion | nombre | padre
> ---------------+--------+-------
> (0 filas)
>
> Duración: 0,462 ms
>
> Sin embargo si ejecuto solo la parte final de la consulta si que lo
> encuentra:
>
> pruebas=# select id_delegacion from delegaciones where padre = 3;
> id_delegacion
> ---------------
> 9
> 10
> (2 filas)
>
> Duración: 0,325 ms
>

La consulta que haces busca las delegaciones cuyo padre a su vez esta asignado al padre nº 3, es
decir, avanza 2 niveles en el arbol.

En este caso del id = 3 solo hay una descendencia (no hay delegaciones asignadas a la 9 y 10)

Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message José Ruiz aguilera 2007-02-28 12:44:31 Re: Conectar con una BD en SQL SERVER
Previous Message Mario 2007-02-28 12:22:46 Re: Problema con consulta simple