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

ayuda a un principiante, unir tablas

Estas en el tema de ayuda a un principiante, unir tablas en el foro de Mysql en Foros del Web. Bien, tengo un problema un poco tonto pero me estoy volviendo loco buscandole la solucion, Mis tablas son las siguientes: tests num_test test_nombre _______________________ 1 ...
  #1 (permalink)  
Antiguo 24/04/2009, 04:41
 
Fecha de Ingreso: noviembre-2001
Mensajes: 16
Antigüedad: 22 años, 4 meses
Puntos: 0
ayuda a un principiante, unir tablas

Bien, tengo un problema un poco tonto pero me estoy volviendo loco buscandole la solucion, Mis tablas son las siguientes:

tests
num_test test_nombre
_______________________
1 Matematicas
2 Ciencias
3 Geografia



resultados
num_test nom_persona resultado
______________________________________
1 Maria 6
2 Maria 7
3 Maria 9
2 Juan 4
3 Juan 8
1 Pedro 7
2 Pedro 2
3 Pedro 1



El resultado de la consulta que yo quiero es asi:

test_nombre nom_persona resultado
______________________________________
Matematicas Maria 6
Ciencias Maria 7
Geografia Maria 9
Matematicas Juan 0
Ciencias Juan 4
Geografia Juan 8
Matematicas Pedro 7
Ciencias Pedro 2
Geografia Pedro 1

Como se puede ver "Juan" no ha hecho el test de matematicas, pero seguro que tiene haber alguna manera de poder reflejarlo al hacer la consulta.

No se si me he explicado bien pero yo recuerdo que en oracle habia algo asi: (+) pero en mysql no funciona o no se utilizarlo o si no es lo que necesito.

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 24/04/2009, 08:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: ayuda a un principiante, unir tablas

EarthDomination,
tu problema es que el campo de la nota lo tienes como INT not null. Cuando eso ocurre, si no introduces un dato, carga por defecto el 0, y te resultará imposible diferenciarlo del 0 como calificación. La mejor opción es cambiar la naturaleza del campo y permitir el null. Con lo cual cuando lo dejes vacío, tendrás NULL, es decir, no tendrás nada, y cuando califiques con 0, podrás buscar un cero. Esto es importante para luego sacar medias, etc.
A la hora de mostrar los datos, en tu consulta en el apartado de nota puedes usar la funcion IFNULL().

SELECT IFNULL(nota,"no tiene calificación") nota FROM nombretabla. Si tiene un cero, escribirá cero y si no tiene asignada nota, escribirá "no tiene calificación o lo que quieras escribir tú entre comillas dentro de la función.
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 20:57.