Oracle - PADRE-HIJOS

 
Vista:

PADRE-HIJOS

Publicado por M (3 intervenciones) el 22/12/2003 13:54:47
Hola!! a ver si me podéis echar una mano:

Tenemos una tabla X con los campos:

- @ Codpersona (clave primaria)
- Nombre
- Apodo
- CogigoPadre (es el código del padre de esa persona)


tenemos otra tabla Y con los campos:

-@ codigo1
-@ codigo2
-@ Codpersona

las tres son clave primaria de la tabla.

Necesito que: al seleccionar un elemento padre de la tabla X (un elemento padre) me diga quienes de sus hijos están en la tabla Y, teniendo en cuenta q cada hijo puede tener hijos en la tabla Y y asi sucesivamente (los padres pueden tener hijos, nietos, bisnietos etc etc) y necesito saber exactamente cuales estan en la tabla Y.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PADRE-HIJOS

Publicado por Byron (300 intervenciones) el 22/12/2003 16:08:51
No se si te sirva en algo:

select level, a.codpersona, a.nombre from tablaX a
where exists (select 1 from tablaY b where b.codpersona = a.codpersona)
start with a.codpersona in (select codpersona from tablaX where codigopadre is null)
connect by prior a.codpersona = a.codigopadre

* La clausula connect by prior establece consulta jerarquica en relacion hijo - padre.
* La clausula start with va de la mano con connect by para establecer cuales seran los registros padres iniciales es decir los que no son hijos de ninguno.
* Y la clausula exist es solo para determinar que exista en la otra tabla que mencionaste.
* El level es una pseudocolumna que te muestra el nivel de hijo o padre que sea si es 1 es Padre sin hijos el resto serian niveles de hijos.

Saludos DTB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar