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

consulta multiple en una sola

Estas en el tema de consulta multiple en una sola en el foro de Bases de Datos General en Foros del Web. Hola foro 'wen' dia a todos.... tengo 3 tablas: departamento, provincia y distrito, en relacion de pertenencia de mayor a menor (distrito de una provincia, ...
  #1 (permalink)  
Antiguo 17/07/2008, 10:13
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 7 meses
Puntos: 10
consulta multiple en una sola

Hola foro 'wen' dia a todos....

tengo 3 tablas: departamento, provincia y distrito, en relacion de pertenencia de mayor a menor (distrito de una provincia, etc..)

en la tabla distrito (Dist_cod) tengo el codigo de departamento (Dpto_cod) y provincia (Prov_cod)

necesito encontrar el nombre de la departamento, provincia y distrito de un usuario entonces obtengo el id de dpo, prov y dist y para saber sus nombres tendría q hacer 3 select uno para cada taba ubicandolos por el id de cada una...

"SELECT dpto_nom FROM departamento WHERE Dpto_cod=".$Dpto_cod;

"SELECT prov_nom FROM provincia WHERE Dpto_cod=".$Dpto_cod.' AND Prov_cod='.$Prov_cod;

"SELECT dist_nom FROM distrito WHERE Dpto_cod=".$Dpto_cod." AND Prov_cod=".$Prov_cod." AND Dist_cod=".$Dist_cod;

puedo hacer estos 3 select en uno solo que agilice el proceso de busqueda??

gracias
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #2 (permalink)  
Antiguo 17/07/2008, 10:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: consulta multiple en una sola

Cita:
Iniciado por killerangel Ver Mensaje
Hola foro 'wen' dia a todos....

tengo 3 tablas: departamento, provincia y distrito, en relacion de pertenencia de mayor a menor (distrito de una provincia, etc..)

en la tabla distrito (Dist_cod) tengo el codigo de departamento (Dpto_cod) y provincia (Prov_cod)

necesito encontrar el nombre de la departamento, provincia y distrito de un usuario entonces obtengo el id de dpo, prov y dist y para saber sus nombres tendría q hacer 3 select uno para cada taba ubicandolos por el id de cada una...

"SELECT dpto_nom FROM departamento WHERE Dpto_cod=".$Dpto_cod;

"SELECT prov_nom FROM provincia WHERE Dpto_cod=".$Dpto_cod.' AND Prov_cod='.$Prov_cod;

"SELECT dist_nom FROM distrito WHERE Dpto_cod=".$Dpto_cod." AND Prov_cod=".$Prov_cod." AND Dist_cod=".$Dist_cod;

puedo hacer estos 3 select en uno solo que agilice el proceso de busqueda??

gracias
Creo que el código de Dpto. Dpto_cod debería estar incluido como FK en la tabla provincia. De esa manera conseguirías dos cosas: ahorrar espacio, pues has escrito ese código un número menor de veces que al guardarlo en la tabla distrito, y por otra parte podrías hacer una búsqueda de provincias del departamento, cosa que ahora no puedes hacer, puesto que no los has relacionado.
La estructura
departamento
-----------------
id_Depto PK
Departamento

provincia
------------
id_Provincia PK
Provincia
refid_Depto FK

distrito
---------
id_distrito PK
Distrito
refid_Provincia FK

usuario
---------
id_usuario PK
nombreusuario
refid_distrito FK

Imaginemos que buscas los datos del usuario cuyo id_usuario es el 5.

SELECT u.nombreusuario, d.Departamento, p.Provincia, di.distrito FROM departamento d INNER JOIN provincia p ON d.id_Depto = p.refid_Depto INNER JOIN distrito di ON p.id_Provincia = d.refid_Provincia INNER JOIN usuario u ON di.id_distrito = u.refid_distrito WHERE id_usuario = 5

Pero esta es la sintaxis con la estructura que te he propuesto.
Con lo que tienes

SELECT u.nombreusuario, d.Departamento, p.Provincia, di.distrito FROM distrito di INNER JOIN departamento d ON d.id_Depto = di.refid_Depto INNER JOIN provincia p ON p.id_Provincia = di.refid_Provincia INNER JOIN usuario u ON di.id_distrito = u.refid_distrito WHERE u.id_usuario = 5

Te recomiendo el cambio que te he propuesto, pero esta es la idea...

Última edición por jurena; 17/07/2008 a las 23:08
  #3 (permalink)  
Antiguo 17/07/2008, 23:01
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 7 meses
Puntos: 10
Respuesta: consulta multiple en una sola

interesante punto de vista

gracias por la ayuda!!!!
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
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:31.