Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Acceder a datos múltiples de una función

Estas en el tema de Acceder a datos múltiples de una función en el foro de PostgreSQL en Foros del Web. Hola forer@s Tengo el siguiente problema. (Ejemplo hipotético) Tabla hijos. 1 - Maria 2 - Juan 3 - Pepito tengo una función obtener_descendencia(id_hijo int) Ejemplo: ...
  #1 (permalink)  
Antiguo 30/06/2015, 09:36
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Acceder a datos múltiples de una función

Hola forer@s

Tengo el siguiente problema. (Ejemplo hipotético)

Tabla hijos.
1 - Maria
2 - Juan
3 - Pepito

tengo una función obtener_descendencia(id_hijo int) Ejemplo:

Código SQL:
Ver original
  1. SELECT *
  2. FROM obtener_descendecia(1); --id 1 de Maria, tabla hijos
  3.  
  4. -- Resultado
  5.  
  6. id   - Nombre - posicion
  7. 1   - Maria     - Hija
  8. 56 - Pepe      - Padre
  9. 78 - Andrés  - Abuelo
  10. 99 - Alguien - Bisabuelo
  11. etc etc etc

Me gustaría generar una consulta que me arrojara todas las descendecias de los hijos. tengo esto.

Código SQL:
Ver original
  1. SELECT obtener_descendecia(t.id)
  2.  
  3.     FROM (
  4.         SELECT id FROM hijos
  5.     ) AS t
  6.  
  7. -- Esto me devuelve la información entre parentesis... pero me gustaría obtenerlo en forma de columnas

Muchas gracias por la ayuda.
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #2 (permalink)  
Antiguo 30/06/2015, 09:44
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Acceder a datos múltiples de una función

Solo a modo de prueba sin garantizar que funciona, prueba esto:

Código SQL:
Ver original
  1. SELECT *FROM obtener_descendecia(SELECT id FROM hijos);

Nos cuentas si funciona o no.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 30/06/2015, 09:52
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: Acceder a datos múltiples de una función

Hola huesos52

Ya lo había intentado... y no funciona... también intente hacer un inner join pero no lo logro.

O si debo reestructurar todo, agradecería un consejo.

Gracias.
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #4 (permalink)  
Antiguo 30/06/2015, 10:16
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Acceder a datos múltiples de una función

Poastea el codigo de la función, para poder ayudarte
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 30/06/2015, 10:33
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: Acceder a datos múltiples de una función

Hola,

Es exactamente la estructura que mencioné antes.

Código SQL:
Ver original
  1. SELECT obtener_descendecia(t.id)
  2.  
  3.     FROM (
  4.         SELECT id FROM hijos
  5.     ) AS t

Lo del inner join fue así

Código SQL:
Ver original
  1. SELECT * FROM obtener_descendecia(t.id) AS x
  2.  
  3.     INNER JOIN (
  4.         SELECT id FROM hijos
  5.     ) AS t ON t.id = x.id

pero tampoco funciona
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #6 (permalink)  
Antiguo 30/06/2015, 10:37
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Acceder a datos múltiples de una función

El codigo de la función obtener_descendecia
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:48.