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

Seleccionar Alumnos sin notas

Estas en el tema de Seleccionar Alumnos sin notas en el foro de Mysql en Foros del Web. Hola, tengo una duda, a ver si alguien me puede dar una mano... Tengo dos tablas, alumnos y notas. Tabla Alumnos: idAlumno nombre Tabla Notas: ...
  #1 (permalink)  
Antiguo 09/03/2009, 10:37
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Seleccionar Alumnos sin notas

Hola, tengo una duda, a ver si alguien me puede dar una mano...

Tengo dos tablas, alumnos y notas.

Tabla Alumnos:
idAlumno
nombre

Tabla Notas:
idNota
idAlumno
nota

Necesito una consulta que me traiga todos los alumnos que no posea notas. Alquien tiene idea de qué clausula select puedo utuilizar?

Desde ya mil gracias y saludos...
  #2 (permalink)  
Antiguo 09/03/2009, 11:16
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Seleccionar Alumnos sin notas

Hola

Prueba esto
Código sql:
Ver original
  1. SELECT * FROM alumnos AS t1 JOIN notas AS t2 ON t1.idAdlumno = t2.idAlumno
  2. WHERE t2.nota = "" OR t2.nota IS NULL
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 09/03/2009, 14:46
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Gracias genetix!!! Lo pruebo y te cuento... Saludos.

Lamentablemente no andubo:

Código PHP:
SELECT FROM `estudiante` AS t1 
JOIN 
`nota` AS t2 ON t1.est_codigo t2.est_codigo 
WHERE t2
.nota "" 
OR t2.nota IS NULL 
La consulta se ejecutó bien, pero devolvió cero filas...

Última edición por GatorV; 09/03/2009 a las 17:58
  #4 (permalink)  
Antiguo 09/03/2009, 15:20
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: Seleccionar Alumnos sin notas

Prueba usando LEFT JOIN

Código sql:
Ver original
  1. SELECT * FROM alumnos AS t1 LEFT JOIN notas AS t2 ON t1.idAdlumno = t2.idAlumno
  2.  
  3.       WHERE t2.nota = "" OR t2.nota IS NULL
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 09/03/2009, 15:29
Avatar de educlon  
Fecha de Ingreso: octubre-2003
Ubicación: Buenos Aires
Mensajes: 35
Antigüedad: 20 años, 6 meses
Puntos: 0
Ya lo solucioné, lo posteo por si a alguien le sirve. Modifiqué un toquesito la consulta y andubo. El código es este:

Código PHP:
SELECT FROM `estudiante` AS t1 
LEFT OUTER JOIN 
`nota` AS t2 ON t1.est_codigo t2.est_codigo 
WHERE t2
.nota IS NULL 
Vale aclarar que en la tabla notas no hay código de alumno (est_codigo) insertado. Esta consulta me devuelven todos los alumnos que estan en la tabla estudiante y que no poseen notas ni registro de est_codigo en la tabla notas.

Saludos y mil gracias por la mano que me dieron!!!

Eduardo

Gracias otra vez, Genetix, probé la que me pasaste y también andubo sin el OUTER:

Código PHP:
SELECT t1.* 
FROM `estudiante` AS t1
LEFT OUTER JOIN 
`nota` AS t2 ON t1.est_codigo t2.est_codigo
WHERE t2
.nota IS NULL 
Si le dejo SELEC * me muestra los campos NULL, para evitarlo, le agregué un SELECT t1.*

Saludos y mil gracias...

Eduardo

Última edición por GatorV; 09/03/2009 a las 17:58
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 09:38.