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

Obtener datos con diferentes id de una tabla en la misma consulta

Estas en el tema de Obtener datos con diferentes id de una tabla en la misma consulta en el foro de PostgreSQL en Foros del Web. Buenas tardes a todos, les cuento mi problema: Tengo una tabla llamada TERCERO donde guardo todos las personas naturales y jurídicas que interactúan con la ...
  #1 (permalink)  
Antiguo 18/01/2011, 14:32
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 1
Obtener datos con diferentes id de una tabla en la misma consulta

Buenas tardes a todos, les cuento mi problema:

Tengo una tabla llamada TERCERO donde guardo todos las personas naturales y jurídicas que interactúan con la empresa. Una tabla CONSIG donde guardo las consignaciones hechas por la empresa. Los campos de la tabla son los siguientes:

num -> numero del documento
banco -> id del tercero tipo banco
numext -> numero del comprobante externo
fecha
consignadopor -> id del tercero tipo empleado
estado

El problema es que para hacer una consulta y mostrar al usuario los resultados tendria que hacer un join con la tabla TERCERO para consultar por el nombre del banco y tambien por el nombre del empleado; pero como los dos estan guardados en la misma tabla no se como lograr obtener los dos nombres en una sola consulta.


Mi consulta es la siguiente:
Código:
SELECT consig.num, tercero.nombre, consig.numext, consig.fecha
FROM consig
INNER JOIN tercero ON consig.num= 123 AND tercero.id=consig.banco
Aqui solo tendria el nombre del banco pero no el del empleado, porque colocaria de nuevo 'tercero.nombre' y tendría que colocar 'tercero.id=consig.consignadopor'.

La tabla TERCERO tiene los siguientes campos entre otros:
id
nombre
documento
ciudad
direccion
telefono

Quiero que el resultado sea asi:

Num | banco | numext | fecha | consignado por
123 | Banco amigo | 123 | 2011-01-12 | Juana de Arco
  #2 (permalink)  
Antiguo 18/01/2011, 21:11
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Obtener datos con diferentes id de una tabla en la misma consulta

Podrías tratar de hacer un join entre la misma tabla.

Algo como terceros t1 join terceros t2 on t1.id=t2.banco;
Así puedes tener valores para nombres dependiendo de la condición del ON.

No entendí muy bien tu problema. Pero creo que lo que te digo te puede servir.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 19/01/2011, 08:00
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Obtener datos con diferentes id de una tabla en la misma consulta

Es que tengo una tabla donde tengo a las personas y tengo otra donde coloco la id de dos de esas personas un banco y un empleado, necesito obtener el nombre de los dos, pero como están en la misma tabla no se como hacer la consulta.
  #4 (permalink)  
Antiguo 19/01/2011, 08:35
 
Fecha de Ingreso: julio-2009
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Obtener datos con diferentes id de una tabla en la misma consulta

creo que esto deberia funcionar

SELECT C.NUM, T.nombre as banco, C.numext, C.fecha, T.nombre as empleado
FROM CONSIG C INNER JOIN TERCERO T ON (C.banco = T.id AND C.consignadopor = T.id);

Disculpas si hay errores de Sintaxis, no tenia como comprobar :P
  #5 (permalink)  
Antiguo 19/01/2011, 13:41
 
Fecha de Ingreso: enero-2010
Ubicación: Soledad-Atlántico
Mensajes: 21
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Obtener datos con diferentes id de una tabla en la misma consulta

Cita:
Iniciado por lord_of_php Ver Mensaje
INNER JOIN TERCERO T ON (C.banco = T.id AND C.consignadopor = T.id);
Esto no me arrojaría nada porque 'banco' y 'consignadopor' tendrían que ser iguales, ya que estamos diciendo que tercero.id debe ser igual a consig.banco y a consig.consignadopor.

Etiquetas: diferentes, tablas
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 16:23.