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
*****************************************
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 |