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

[SOLUCIONADO] Consulta en una BDD relacional con muchas tablas

Estas en el tema de Consulta en una BDD relacional con muchas tablas en el foro de Mysql en Foros del Web. Tengo un modelo de BDD similar al que muestra la figura Donde las tablas tienen los siguientes registros: - Tabla Tipoi: idTipoi, strNombreCasoi, intDato - ...
  #1 (permalink)  
Antiguo 19/03/2013, 10:24
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 6 años, 5 meses
Puntos: 8
Pregunta Consulta en una BDD relacional con muchas tablas

Tengo un modelo de BDD similar al que muestra la figura


Donde las tablas tienen los siguientes registros:
- Tabla Tipoi: idTipoi, strNombreCasoi, intDato
- Tabla formula: idFormula, strNombreFormula, idTipo1, idTipo2, idTipo3,
- Tabla orden: idOrden, idFormula, strNombreOrden
- Tabla interno: idInterno, strNombreInterno, idOrden, idProceso1, idProceso2, idProceso3.
- Tabla cedula: idCedula, strNombreCedula, idInterno.

Las relaciones idInterno son de 1:1 y de idOrden de 1 a muchos.

Quiero hacer una consulta en la que el usuario final pueda ver los siguientes campos: strNombreCedula, strNombreCaso1, strNombreProceso2 y que la condicion sea que el intDato de la tabla tipo 3, sea un numero determinado N.

He intentado hacerlo pero hasta el momento solo tengo el strNombreCedula, lo demas no puedo realizarlo en una sola consulta. Agradezco quien pueda ayudarme
__________________
--
Aqui fegm_4
  #2 (permalink)  
Antiguo 19/03/2013, 12:53
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 12 años, 7 meses
Puntos: 447
Respuesta: Consulta en una BDD relacional con muchas tablas

Hola fegm_4:

¿Qué es lo que has intentado hacer? probaste usar los JOIN's? si tienes dudas de cómo funcionan puedes preguntarle a Santa Wikipedia:

http://es.wikipedia.org/wiki/Join

Postea algo de lo que has intentado hacer, publica también algunos datos de ejemplo de tus tablas y a partir de esos datos dinos qué es lo que esperas obtener como resultado, así será más fácil tratar de darte algún tip.

Saludos
Leo.
  #3 (permalink)  
Antiguo 19/03/2013, 14:06
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 6 años, 5 meses
Puntos: 8
Información Respuesta: Consulta en una BDD relacional con muchas tablas

Buenas tardes Leonardo!

Los datos de cada tabla se muestran en la imagen a continuación:


Soy nuevo en esto del SQL y lo que he intentado hacer es lo siguiente:

Código SQL:
Ver original
  1. SELECT cedula.strNombreCedula FROM cedula WHERE cedula.idInterno IN (SELECT interno.idInterno FROM interno WHERE interno.idOrden IN (SELECT orden.idOrden FROM orden, formula WHERE orden.idFormula=formula.idFormula AND formula.idTipo1=2))

Con lo cual he obtenido una lista como la siguiente:
strNombreCedula
CED0001
CED0003
CED0004
CED0007
CED0008
CED0009
CED0010

Ahora bien, eso me ha dado los nombres de las cédulas, pero quisiera ademas la información el nombre del caso de cada cédula y del proceso que tuvo cada cédula. Como muestra la siguiente imagen:



Agradezco mucho tu ayuda
__________________
--
Aqui fegm_4
  #4 (permalink)  
Antiguo 19/03/2013, 16:39
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 12 años, 7 meses
Puntos: 447
Respuesta: Consulta en una BDD relacional con muchas tablas

Hola de nuevo fegm_4:

No me queda claro como están relacionados los datos, pero la idea es que hagas algo cmo esto:

Código MySQL:
Ver original
  1. mysql> SELECT cedula.`strNombreCedula`, tipo1.`strNombreCaso1`  FROM cedula
  2.     -> INNER JOIN interno ON interno.idInterno = cedula.idInterno
  3.     -> INNER JOIN orden ON orden.idOrden = interno.idOrden
  4.     -> INNER JOIN formula ON formula.idFormula = orden.idFormula
  5.     -> INNER JOIN tipo1 ON tipo1.idTipo1 = formula.idTipo1
  6.     -> WHERE formula.idTipo1 = 2
  7.     -> ORDER BY cedula.idCedula;
  8. +-----------------+----------------+
  9. | strNombreCedula | strNombreCaso1 |
  10. +-----------------+----------------+
  11. | CED0001         | Caso 20        |
  12. | CED0003         | Caso 20        |
  13. | CED0004         | Caso 20        |
  14. | CED0006         | Caso 20        |
  15. | CED0007         | Caso 20        |
  16. | CED0008         | Caso 20        |
  17. | CED0009         | Caso 20        |
  18. | CED0010         | Caso 20        |
  19. +-----------------+----------------+
  20. 8 rows in set (0.02 sec)

al hacer los JOIN's automáticamente tienes acceso a todos los datos de las tablas que estás enlazando. Es solo cuestión de que hagas las relaciones (ON's) correctas.

haz el intento y nos comentas.

Saludos
Leo.
  #5 (permalink)  
Antiguo 20/03/2013, 07:01
Avatar de fegm_4  
Fecha de Ingreso: febrero-2013
Mensajes: 114
Antigüedad: 6 años, 5 meses
Puntos: 8
Respuesta: Consulta en una BDD relacional con muchas tablas

Buenos días Leonardo!

He hecho lo que me recomendaste, agregando ademas las tablas tipo 1 y tipo 2 con los INNER JOIN y me ha resultado exactamente como quería y como me has dicho.

¡De verdad muchas gracias!
__________________
--
Aqui fegm_4

Etiquetas: consulta-mysql
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 06:20.