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

Consulta complicada

Estas en el tema de Consulta complicada en el foro de Mysql en Foros del Web. Hola necesito obtener una lista de todos los exámenes que un alumno NO haya realizado. Uso una versión de MySQL que no admite la cláusula ...
  #1 (permalink)  
Antiguo 20/02/2006, 16:46
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Consulta complicada

Hola necesito obtener una lista de todos los exámenes que un alumno NO haya realizado. Uso una versión de MySQL que no admite la cláusula NOT IN entonces se me complica. Las tablas son:

tests(id_test, titulo, descripcion,...)

resultados(id_alumno, id_test, fecha, nota)

Sería sencillo pedir los tests que no están en la tabla de resultados para un determinado alumno, pero como dije no puedo utilizar NOT IN.

Lo intente por este camino:

SELECT * FROM tests LEFT JOIN resultados ON tests.id_test=resultados.id_test WHERE resultados.id_test IS NULL

Esto me trae los exámenes que NINGÚN alumno realizó pero no logro que me traiga los que UN alumno en particular no haya realizado.

Desde ya agradezco mucho su ayuda,

Tomas.
  #2 (permalink)  
Antiguo 20/02/2006, 16:55
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
Si quieres los examenes que un alumno no ha hecho, creo que te falta anadir la condicion del alumno que quieres:
Código PHP:
//
SELECT FROM tests LEFT JOIN resultados ON tests.id_test=resultados.id_test WHERE resultados.id_test IS NULL AND id_alumno='1'
cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 20/02/2006, 17:00
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Fue lo primero que pensé, pero al añadir la condición del alumno la consulta no devuelve ninguna fila puesto que el campo id_alumno queda en NULL para los alumnos que NO realizaron el exámen!
  #4 (permalink)  
Antiguo 20/02/2006, 18:05
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
si pruebas invertir el JOIN tal vez sea lo que falla, cya
Código PHP:
//
SELECT 
FROM resultados LEFT JOIN tests ON tests.id_test=resultados.id_test 
WHERE resultados
.id_test IS NULL AND id_alumno='1'
__________________
"El Conocimiento es de todos, no solo de algunos"
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 13:11.