Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   consulta multiple en una sola (http://www.forosdelweb.com/f21/consulta-multiple-sola-606797/)

killerangel 17/07/2008 10:13

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

jurena 17/07/2008 10:56

Respuesta: consulta multiple en una sola
 
Cita:

Iniciado por killerangel (Mensaje 2495353)
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...

killerangel 17/07/2008 23:01

Respuesta: consulta multiple en una sola
 
interesante punto de vista

gracias por la ayuda!!!!


La zona horaria es GMT -6. Ahora son las 20:31.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.