Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/08/2011, 13:19
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: mysql muestra resultados no solicitados...

El uso de LEFT JOIN es para obtener todos los registros de la tabla izquierda (calificaciones en este caso), tengan o no coincidencias con el de la derecha, pero no es exactamente eso lo que buscas.
En otras palabras, no es suficientemente restrictivo.
La sintaxis más cercana para lo que quieres sería tal vez:
Código MySQL:
Ver original
  1.     A.id,
  2.     A.grado,
  3.     A.grupo,
  4.     C.*,
  5.     M.nombre,
  6.     M.id
  7.     calificaciones C
  8.     INNER JOIN alumnos A ON C.idAlumno = A.id AND C.semestre = A.grado
  9.     INNER JOIN materias M ON M.id = C.idMateria AND A.grado = M.grado
  10.      C.idAlumno = 1
  11. GROUP BY M.nombre
  12. ORDER BY M.nombre ASC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)