Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/10/2012, 06:20
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 11 meses
Puntos: 574
Respuesta: Relacionar tablas

Practicas
idPractica
nombrePractica
...

PracticasCompletadas
idPracticaCompletada
idPractica
idAlumno
convocatoria
nota
...
(he incluido convocatoria para que un alumno pueda repetir una practica)

No se si es esto lo que pides

Código MySQL:
Ver original
  1. SELECT p.nombrePractica, pc.convocatoria, pc.nota
  2. FROM practicas p LEFT JOIN practicascompletadas pc
  3.               ON p.idPractiac=pc.idPractica
  4. WHERE pc.idAlumno=514

Esto te dará una lista de TODAS las practicas con o sin convocatoria y nota del alumno 514. Cuando convocatoria y nota sean nulos es que 514 no ha hecho esa parctica...

Código MySQL:
Ver original
  1. SELECT p.nombrePractica, pc.convocatoria, pc.nota
  2. FROM practicas p LEFT JOIN practicascompletadas pc
  3.               ON p.idPractiac=pc.idPractica
  4. WHERE pc.idAlumno=514
  5.            and pc.idPractica IS NULL

esto te dará SOLO las parcticas que 514 no ha hecho.

Código MySQL:
Ver original
  1. SELECT p.nombrePractica, pc.convocatoria, pc.nota
  2. FROM practicas p LEFT JOIN practicascompletadas pc
  3.               ON p.idPractiac=pc.idPractica
  4. WHERE pc.idAlumno=514
  5.            and (pc.nota IS NULL OR pc.nota=1)

esto lo que NO ha hecho o NO ha aprobado. Ojo con las convocatorias (repeticiones) pero como no se si lo estas usando no lo desarrollo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 02/10/2012 a las 06:28