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

dos select en uno

Estas en el tema de dos select en uno en el foro de Bases de Datos General en Foros del Web. hola tengo un problema, tengo un select que me trae una serie de datos entre ellos el codigo de dos ciudades (codigos distintos) y necesito ...
  #1 (permalink)  
Antiguo 28/04/2008, 10:11
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 17 años, 10 meses
Puntos: 0
dos select en uno

hola tengo un problema, tengo un select que me trae una serie de datos entre ellos el codigo de dos ciudades (codigos distintos) y necesito hacer otro select para buscar el nombre que corresponde a cada codigo obtenido, el problema es que lo necesito hacer en una sola consulta, lo intente pero me no me sale no se si alguien podria ayudarme de antemano gracias...

"SELECT A.CODIGO_CIUDAD CODIGO_CIUDAD, A.CODIGO_CIDAD2
CODIGO_CIDAD2, A.MONTO MONTO, B.NOMBRE_CIUDAD NOMBRE_CIUDAD
FROM ADMINISTRATIVO.VIAT_ASIGNACION_VIAJE A, DMINISTRATIVO.VIAT_CIUDAD B WHERE A.CODIGO_CIUDAD = B.CODIGO_CIUDAD


aqui me funciona pero me trae solo un nombre de los dos...
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #2 (permalink)  
Antiguo 28/04/2008, 13:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: dos select en uno

SELECT A.CODIGO_CIUDAD, A.CODIGO_CIDAD2, A.MONTO, B.NOMBRE_CIUDAD
FROM ADMINISTRATIVO.VIAT_ASIGNACION_VIAJE A, ADMINISTRATIVO.VIAT_CIUDAD B WHERE A.CODIGO_CIUDAD = B.CODIGO_CIUDAD


Me parece que estabas repitiendo datos y causaba problema
también podrías hacerlo con INNER JOIN...
Lo que no entiendo es ese A.CODIGO_CIDAD2, no sé si será otro dato.

Si no es eso, dinos algo más de la estructura de las tablas, de lo que quieres mostrar y de los datos que te traes en el primer select...
  #3 (permalink)  
Antiguo 28/04/2008, 15:50
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: dos select en uno

SELECT CODIGO_CIUDAD_TABLA1, CODIGO_CIUDAD2_TABLA1, NOMBRE_CIUDAD_TABLA2
FROM TABLA_A, TABLA_B WHERE CODIGO_CIUDAD_TABLA_A = CODIGO_CIUDAD_TABLA_B


TABLA A

CODIGO_CIUDAD
CODIGO_CIUDAD2
RUTA


TABLA B

CODIGO_CIUDAD
NOMBRE_CIUDAD

Deseo en una misma consulta me traiga los codigos de la tabla A y la descripcion de cada una, de la tabla B, gracias por tu interes, saludos...
pd: el codigo de arriba no lo esta haciendo, gracias...
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #4 (permalink)  
Antiguo 28/04/2008, 22:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: dos select en uno

No sé por qué almacenas las dos ciudades así, pero si van a ser siempre dos ciudades, prueba esto:

SELECT b.NOMBRE_CIUDAD AS CIUDAD1, bb.NOMBRE_CIUDAD AS CIUDAD2
FROM tabla_b AS b, tabla_b AS bb, tabla_a AS a
WHERE b.CODIGO_CIUDAD = a.CODIGO_CIUDAD
AND bb.CODIGO_CIUDAD = a.CODIGO_CIUDAD2

Suerte
  #5 (permalink)  
Antiguo 29/04/2008, 00:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: dos select en uno

Cita:
Iniciado por jurena Ver Mensaje
WHERE b.CODIGO_CIUDAD = a.CODIGO_CIUDAD
AND bb.CODIGO_CIUDAD = a.CODIGO_CIUDAD2
Me temo que a no ser que CODIGO_CIUDAD = CODIGO_CIUDAD2 esto no funcionará nunca.

Un saludo
  #6 (permalink)  
Antiguo 29/04/2008, 00:59
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: dos select en uno

Cita:
Iniciado por rrodriguez1310 Ver Mensaje
SELECT CODIGO_CIUDAD_TABLA1, CODIGO_CIUDAD2_TABLA1, NOMBRE_CIUDAD_TABLA2
FROM TABLA_A, TABLA_B WHERE CODIGO_CIUDAD_TABLA_A = CODIGO_CIUDAD_TABLA_B


TABLA A

CODIGO_CIUDAD
CODIGO_CIUDAD2
RUTA


TABLA B

CODIGO_CIUDAD
NOMBRE_CIUDAD

Deseo en una misma consulta me traiga los codigos de la tabla A y la descripcion de cada una, de la tabla B, gracias por tu interes, saludos...
pd: el codigo de arriba no lo esta haciendo, gracias...
Bien, vamos por pasos, primero porque tienes almacenadas las ciudades asi?
La select parece correcta, pero cual es la PK de TABLA_A y la FK de TABLA_B.
Supongo que en TABLA_A CODIGO_CIUDAD != CODIGO_CIUDAD2, no?

Un saludo
  #7 (permalink)  
Antiguo 29/04/2008, 08:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: dos select en uno

Seyko,

Yo entiendo que tiene un PK y que ha introducido en la otra tabla los FK pero en dos campos de un mismo registro, serían pues dos FK en dos campos de un mismo registro. En lugar de hacer dos registros, no sé por qué razón (aunque alguna tendrá, si bien yo hubiera preferido la otra estructura, la de dos registros, una por cada ciudad) ha cargado en esos dos campos los datos numéricos. Y ahora quiere recuperar los dos nombres. Esa consulta que le he propuesto hace que la tabla donde tiene el PK se convierta mediante alias en dos tablas distintas; luego se ponen en relación con cada una de esas tablas los dos 'Fk' de cada registro y se trae el nombre según coincida; el requerimiento es con AND pues queremos los dos.
En cuanto al rendimiento, desconozco cuál sería comparado con la otra estructura de tablas, pero creo que funciona...
  #8 (permalink)  
Antiguo 29/04/2008, 09:36
 
Fecha de Ingreso: junio-2006
Mensajes: 175
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: dos select en uno

hola gracias por su apoyo ya encontre la forma de dar con el codigo, aqui por si alguien lo necesita, saludos...

SELECT A.CODIGO_CIUDAD , A.CODIGO_CIDAD2, A.MONTO , B.NOMBRE_CIUDAD NOMBRE_CIUDAD1, C.NOMBRE_CIUDAD NOMBRE_CIUDAD2 FROM ADMINISTRATIVO.VIAT_ASIGNACION_VIAJE A, ADMINISTRATIVO.VIAT_CIUDAD B, ADMINISTRATIVO.VIAT_CIUDAD C
WHERE A.CODIGO_CIUDAD = B.CODIGO_CIUDAD AND A.CODIGO_CIDAD2 = C.CODIGO_CIUDAD
__________________
Lo poco que sé se lo debo a mi ignorancia....
  #9 (permalink)  
Antiguo 29/04/2008, 10:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Re: dos select en uno

jurena,

si tu estas en lo correcto, entonces funciona, pero no tiene sentido tener 2 FK apuntando al mismo registro.

Viendo la consulta que se lo soluciona, creo que eran 2 ciudades distintas, eso ya tiene más sentido.

Un saludo

PD: rrodriguez, si lo hubieras explicado mejor, con un ejemplo, ... lo hubieramos solucionado en el momento
  #10 (permalink)  
Antiguo 29/04/2008, 11:18
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Re: dos select en uno

Seyco:
Yo habría hecho lo que tú sugieres, una FK por registro y dos registros para dos ciudades, pero lo que él tenía era eso y, por lo que dice, le ha funcionado. Yo le recomendaría todavía ahora el cambio, pero no sé si estará dispuesto a hacerlo.

Saludos
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 00:52.