Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/02/2012, 11:24
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: duda con consulta de mysql para varias tablas

hola rufus:

Sólo un comentario con respecto al post de jmacc, cuando utilices cualquier JOIN (INNER, LEFT o RIGHT) utiliza siempre la cláusula ON para definir las relaciones entre las tablas. En la manera en que lo plantea jmacc sin especificar ON, se realiza primero un producto cartesiano entre las tablas antes de filtrarse.
El resultado puede ser el mismo, pero la consulta no es óptima.

Los criterios para unir las tablas SIEMPRE DEBEN IR EN LA CLÁUSULA ON, los criterios para filtrar la información las colocas en el WHERE. En tu caso la consulta debería quedar más o menos así:

Código MySQL:
Ver original
  1. aulas.hora as horas,
  2. profesores.nombreprofesor as Profesor
  3. FROM aulasyprofesores
  4. INNER JOIN aulas ON aulasyprofesores.aula = aulas.aula
  5. INNER JOIN profesores ON profesores.dni_p = aulasyprofesores.dni_p
  6. ....
  7. aquí filtras sólo los registros que correspondan al aula de dibujo.
  8. ....
  9. ORDER BY alguncampo

Observa también que cambié el orden de las tablas aulas y aulasyprofesores. Es recomendable que en el FROM pongas la tabla de relaciones (es decir aquella en la que sólo estás almacenando los id a los catálogos) y en los INNER JOIN's coloques las tablas catálogo.

Saludos
Leo.