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

Como juntar dos tablas?

Estas en el tema de Como juntar dos tablas? en el foro de Bases de Datos General en Foros del Web. Tengo una tabla OPERACIONES con estos campos: ID* (autoincremento) CP_Origen (int) CP_Destino (int) y otros campos sin importancia En otra tabla CP (codigo postal) con ...
  #1 (permalink)  
Antiguo 13/05/2004, 10:25
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
Como juntar dos tablas?

Tengo una tabla OPERACIONES
con estos campos:

ID* (autoincremento)
CP_Origen (int)
CP_Destino (int)
y otros campos sin importancia

En otra tabla CP (codigo postal)
con estos campos

CP* (int)
Poblacion (char)
y otros sin importancia

Lo que quiero hacer es sacar por pantalla la tabla operaciones, pero, en vez del codigo postal, que aparezca la población.


Si solo fuera origen, haria un inner join CP_origen=CP y todo arreglado, pero asi me dejo fuera el destino.

Mis clases de BD quedan algo lejos, como podria hacerlo?
Con una Subconsulta?
Me he explicado?
  #2 (permalink)  
Antiguo 13/05/2004, 11:25
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 22 años
Puntos: 1
Si lo que quieres es que aparezca el nombre de la población origen y el nombre de la población destino de cada operación, en el FROM pon dos veces la tabla CP pero con distintos alias. Sería algo así:

Código PHP:
SELECT <Campos>
FROM Operaciones AS O
     
CP AS CPO
     
CP AS CPD 
WHERE O
.CP_Origen CPO.CP 
  
AND O.CP_Destino CPD.CP 
  
<Demás condiciones
¿Será eso lo que quieres?
__________________
Ariel Avelar
  #3 (permalink)  
Antiguo 14/05/2004, 03:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
exactamente, pero veo q no utilizas el join, es por algo?

SELECT <Campos>
FROM ((Operaciones AS O
inner join CP AS CPO on O.CP_Origen = CPO.CP )
inner join CP AS CPD O.CP_Destino = CPD.CP )

<Demás condiciones>
  #4 (permalink)  
Antiguo 14/05/2004, 10:30
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 22 años
Puntos: 1
La costumbre, pero el Inner agiliza la consulta.

Saludos...
__________________
Ariel Avelar
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 14:39.