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

Duda con cunsulta

Estas en el tema de Duda con cunsulta en el foro de PostgreSQL en Foros del Web. Hi, tengo un problema con una consulta, la cosa es que tengo una tabla persona_residencia que tiene un idpais que esta en otra tabla nom_pais, ...
  #1 (permalink)  
Antiguo 19/03/2010, 14:51
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Duda con cunsulta

Hi, tengo un problema con una consulta, la cosa es que tengo una tabla persona_residencia que tiene un idpais que esta en otra tabla nom_pais, y tengo otra tabla persona_nacimiento que tambien tiene un idpais. En la consulta necesito las dos denominaciones del pais que esta en nom_pais, pero puedo hacer un solo inner join para unir nom_pais, suponiendo que lo una con residencia a la hora de poner en el select la denominacion la tengo que poner dos veces la de residencia y la de nacimiento(nom_pais.denominacion), y por supuesto devuelve solo el pais que esta en residencia dos veces. De que manera puedo hacer esto, si se puede diferenciar las denominaciones que vienen de la misma tabla, si hay otra forma de hacer el inner join o si las relaciones hay que hacerla de otra manera porque en realidad se me acabaron las ideas. Gracias de antemano chaoo.

Por ejemplo tengo las siguientes tablas:
persona(idpersona, etc)
persona_nacimiento(idpersonanacimieento, idpersona, idpais, etc)
persona_residencia(idpersonaresidencia, idpersona, idpais, etc)
pais(idpais, denominacion )

Entonces lo que quiero entre otras cosas es la denominacion del pais de residencia y la denominacion del paias de nacimiento, la consulta como la tengo es:

select

p.denom as paisresidencia,
p.denom as paisnacimiento
(entre otros datos)
from persona ps
inner join personaresidencia pr on ps.idpersona = pr.idpersona
inner join personanacimiento pn on ps.idpersona = pn.idpersona
(y aqui es cuando viene el problema, a la hora de unir pais le puedo hacer inner join con una sola tabla
por ejemplo)
inner join pais on pr.idpais = p.idpais
y la consulata devuelve la misma denominacion, la del pais de residencia, alguna idea de como obtener lo que quiero la denominacion del pais de residencia y la del pais de nacimiento??

Última edición por tatica; 20/03/2010 a las 06:36
  #2 (permalink)  
Antiguo 19/03/2010, 15:59
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: Duda con cunsulta

postea lo que haz hecho y las consultas que has probado.

También la salida que esperas con unos datos de ejemplo.

slaudos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/03/2010, 14:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 65
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Duda con cunsulta

Hola por lo que entendi solo tienes que llamar 2 veces a la tabla pais uno para el nacimiento y otro para la residencia

select
1.denom as paisresidencia,
2.denom as paisnacimiento
from persona ps
inner join pais 1 on pr.idpais = 1.idpais
inner join pais 2 on pr.idpais = 2.idpais

aver si t epude ayudar
  #4 (permalink)  
Antiguo 25/03/2010, 07:43
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Duda con cunsulta

Muchas gracias por la ayuda eso resuelve el problema thanks.

Etiquetas: Ninguno
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 09:17.