Duda consulta SQL

11/12/2003 - 16:19 por Juan Carlos Villalobos | Informe spam
Saludos, me encuentro con una tabla con cierto diseño y quisiera saber si es
posible realizar una sola consulta sql que me arroje los resultados
requeridos. Para facilitar coloco un ejemplo que asemeja la estructura de la
tabla.

Campos de la tabla:
ID, Nombre, IDPadre (El campo IDPadre hace referencia a un registro dentro
de la misma tabla.)

Registros ejemplo:
1,Pedro,0
2,Juan,0
3,Maria,0
4,Luis,1
5,Carlos,2
6,Alberto,1

Se puede estructurar una consulta que me arroje el sgte resultado ?
4,Luis,Pedro
5,Carlos,Juan
6,Alberto,Pedro

Muchas gracias de antemano

Cordial saludo
Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
11/12/2003 - 16:23 | Informe spam
si como no

podrias usar join ej

Select t1.id,t1.nombre,t2.nombre from tabla t1 inner join tabla t2 on
t1.id = t2.padre_id

algo asi deberia ser

suerte.

pd: no lo probe porque no tengo aca SQL :D


Maximiliano Damian Accotto
"Juan Carlos Villalobos" escribió en el mensaje
news:%233igEp$
Saludos, me encuentro con una tabla con cierto diseño y quisiera saber si


es
posible realizar una sola consulta sql que me arroje los resultados
requeridos. Para facilitar coloco un ejemplo que asemeja la estructura de


la
tabla.

Campos de la tabla:
ID, Nombre, IDPadre (El campo IDPadre hace referencia a un registro dentro
de la misma tabla.)

Registros ejemplo:
1,Pedro,0
2,Juan,0
3,Maria,0
4,Luis,1
5,Carlos,2
6,Alberto,1

Se puede estructurar una consulta que me arroje el sgte resultado ?
4,Luis,Pedro
5,Carlos,Juan
6,Alberto,Pedro

Muchas gracias de antemano

Cordial saludo
Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"


Respuesta Responder a este mensaje
#2 ulises
11/12/2003 - 16:37 | Informe spam
Prueba con

CREATE TABLE prueba ( id int, nombre char(10), idpadre
int )
go
INSERT INTO prueba VALUES ( 1,'Pedro',0)
INSERT INTO prueba VALUES ( 2,'Juan',0)
INSERT INTO prueba VALUES ( 3,'Maria',0)
INSERT INTO prueba VALUES ( 4,'Luis',1)
INSERT INTO prueba VALUES ( 5,'Carlos',2)
INSERT INTO prueba VALUES ( 6,'Alberto',1)
go
SELECT a.id, a.nombre, b.nombre
FROM prueba a LEFT JOIN prueba b
ON ( a.idpadre = b.id )
WHERE a.idpadre > 0
go

te dara como resultado lo que pides

id nombre nombre
4 Luis Pedro
5 Carlos Juan
6 Alberto Pedro

(3 row(s) affected)

Saludos,
Ulises

Saludos, me encuentro con una tabla con cierto diseño y


quisiera saber si es
posible realizar una sola consulta sql que me arroje los


resultados
requeridos. Para facilitar coloco un ejemplo que asemeja


la estructura de la
tabla.

Campos de la tabla:
ID, Nombre, IDPadre (El campo IDPadre hace referencia a


un registro dentro
de la misma tabla.)

Registros ejemplo:
1,Pedro,0
2,Juan,0
3,Maria,0
4,Luis,1
5,Carlos,2
6,Alberto,1

Se puede estructurar una consulta que me arroje el sgte


resultado ?
4,Luis,Pedro
5,Carlos,Juan
6,Alberto,Pedro

Muchas gracias de antemano

Cordial saludo
Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"


.

Respuesta Responder a este mensaje
#3 Juan Carlos Villalobos
11/12/2003 - 16:44 | Informe spam
Hola Maximiliano, probe y funcionó de maravilla, lo unico fue invertir el
t1.id = t2.padre_id por t1.padre_id = t2.id
y listo.
Muchas gracias, ha sido una valiosisima ayuda.

Un cordial saludo
Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"


"Maximiliano Damian Accotto" escribió
en el mensaje news:%23aE6mr$
si como no

podrias usar join ej

Select t1.id,t1.nombre,t2.nombre from tabla t1 inner join tabla t2 on
t1.id = t2.padre_id

algo asi deberia ser

suerte.

pd: no lo probe porque no tengo aca SQL :D


Maximiliano Damian Accotto
Respuesta Responder a este mensaje
#4 Maximiliano Damian Accotto
11/12/2003 - 16:49 | Informe spam
correcto!! me alegro que te haya sido de utilidad!!

un saludo y espero volver a verte por estos pagos :D

Maximiliano Damian Accotto
"Juan Carlos Villalobos" escribió en el mensaje
news:e$f5V3$
Hola Maximiliano, probe y funcionó de maravilla, lo unico fue invertir el
t1.id = t2.padre_id por t1.padre_id = t2.id
y listo.
Muchas gracias, ha sido una valiosisima ayuda.

Un cordial saludo
Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"


"Maximiliano Damian Accotto" escribió
en el mensaje news:%23aE6mr$
> si como no
>
> podrias usar join ej
>
> Select t1.id,t1.nombre,t2.nombre from tabla t1 inner join tabla t2 on
> t1.id = t2.padre_id
>
> algo asi deberia ser
>
> suerte.
>
> pd: no lo probe porque no tengo aca SQL :D
>
>
> Maximiliano Damian Accotto


Respuesta Responder a este mensaje
#5 Juan Carlos Villalobos
11/12/2003 - 17:13 | Informe spam
Ulises tambien muchas gracias por tu tiempo y esfuerzo. Maximiliano mostró
la forma de hacerlo con inner join, pero veo segun tu ejemplo la forna de
como hacerlo tambien con el left join. No se creia que pudiera atacarse
tambien con el left join. He aprendido bastante de los dos.

Nuevamente gracias Ulises y un cordial saludo

Juan Carlos

Si te caes siete veces, levántate ocho
"Proverbio chino"

"ulises" escribió en el mensaje
news:085c01c3bffc$b11a4ae0$
Prueba con

CREATE TABLE prueba ( id int, nombre char(10), idpadre
int )
go
INSERT INTO prueba VALUES ( 1,'Pedro',0)
INSERT INTO prueba VALUES ( 2,'Juan',0)
INSERT INTO prueba VALUES ( 3,'Maria',0)
INSERT INTO prueba VALUES ( 4,'Luis',1)
INSERT INTO prueba VALUES ( 5,'Carlos',2)
INSERT INTO prueba VALUES ( 6,'Alberto',1)
go
SELECT a.id, a.nombre, b.nombre
FROM prueba a LEFT JOIN prueba b
ON ( a.idpadre = b.id )
WHERE a.idpadre > 0
go

te dara como resultado lo que pides

id nombre nombre
4 Luis Pedro
5 Carlos Juan
6 Alberto Pedro

(3 row(s) affected)

Saludos,
Ulises
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida