Bases de Datos > MySQL
problema con duplicacion de campos
(1/1)
crocop:
hola amigos les cuento toy realizando un libro de clases en con 4 tablas .
--- Código: XML --- [u]tabla anotacion[/u] [u]tabla alumnos [/u] [u]tabla asignatura [/u] [u]tabla notas_alumno[/u]cod_anotacion [b]rut_alumno [/b] [b] cod_asignatura[/b] [b] cod_notas[/b][b]rut_alumno [/b] nom_alumno nom_asignantura [b]cod_asignatura[/b]anotacion [b] rut_alumno[/b] nota porcentaje
Quiero mostrar : rut_alumno, nom_alumno,nom_asignatura,nota,porcentaje,anotacion
mi problema es que cuando hago la consulta de listar con este query SE DUPLICAN LOS DATOS:
--- Código: XML ---Rut Nombre Nombre asignatura Notas porcentaje Anotaciones12343234-4 andres ingles 44 55% bien 12343234-4 andres ingles 44 55% bien 12343234-4 andres ingles 23 34% bien 12343234-4 andres ingles 23 34% bien
SELECT a.rut_alumno, a.nom_alumno, b.cod_asignatura, b.nom_asignatura, c.cod_anotacion, c.rut_alumno, c.anotacion, d.cod_nota, d.cod_asignatura, d.rut_alumno, d.nota , d.porcentaje
FROM alumnos a, asignaturas b, anotaciones_alumno c, notas_alumno d
WHERE a.rut_alumno=d.rut_alumno and d.rut_alumno=c.rut_alumno and d.cod_asignatura=b.cod_asignatura
cual seria mi problema? muchas gracias!
softevolutions:
Es normal que se te dupliquen los datos con esa estructura. Te pasará siempre que un alumno tenga mas de un registro en "tabla_notas_alumnos".
La consulta sería tal que así:
select a.rut_alumno, a.nom_alumno, asig.nom_asignatura, na.nota, na.porcentaje, anot.anotacion
from alumnos a
left join asignatura asig on asig.rut.alumno = a.rut_alumno
left join notas_alumno na on na.rut_alumno=a.rut_alumno and na.cod_asignatura=asig.cod_asignatura
left join anotaciones anot on anot.rut_alumno=a.rut_alumno
No lo he probado, pero creo que sería así.
Navegación
Ir a la versión completa