SQL - Duda de SQL

   
Vista:

Duda de SQL

Publicado por Javier (2 intervenciones) el 19/09/2007 23:46:20
Hola:
Espero que alguien me pueda ayudar.
Haber yo tengo un BD que la modifico usando SQL. Y tengo en la BD varias tablas que están formadas de la siguiente manera:

TABLA `usuario` tiene los campos:id,nombre,apellido1,apellido2`---> todas son claves primarias

TABLA `asignatura` tiene los campos: `nombre`, codigo--> siendo codigo clave primaria

TABLA `notas_isi`, notas_daa, notas_pl tiene los campos de :` id, calificacion`, nota, nombre, apellido1, apellido2---> siendo la claves primarias el id, nombre, apellido1, apellido2

TABLA `notas_mp` tiene los campos de :calificacion`, nota, nombre, apellido1, apellido2-->todas son claves primarias

TABLA `alumno_asignatura` tiene los campos: `alumno`,`asignatura`---> todas son claves primarias

El asignaturas cuyo codigo me interesa es ("23","37","25","35","41","44")

Entonces como tengo que hacer la consulta para obtener los alumnos que estén matriculados en más de dos asignaturas?????
Yo he hecho la consulta que pongo a continuación, pero no fucniona y no sé porqué.....
MUCHAS GRACIAS

SELECT `usuario`.`nombre`,`usuario`.`apellido1`,`usuario`.`apellido2`,`asignatura`.`nombre`,
`notas_isi`.`calificacion`,
`notas_mp`.`calificacion`
FROM `usuario`, `alumno_asignatura` ,`asignatura`,`notas_isi`,`notas_mp`
WHERE ((`usuario`.`id` = `alumno_asignatura`.`alumno`)
AND (`alumno_asignatura`.`asignatura` = `asignatura`.`codigo`)
AND (`asignatura`.`codigo`) IN ("23","37","25","35","41","44")
AND ((`usuario`.`id`= `notas_isi`.`id`)
OR (`usuario`.`id`= `notas_pl`.`id`)
OR (`usuario`.`id`= `notas_daa`.`id`)
OR (( `usuario`.`nombre` = `notas_mp`.`nombre`)
AND ( `usuario`.`apellido1` = `notas_mp`.`apellido1`)
AND ( `usuario`.`apellido2` = `notas_mp`.`apellido2`))))
GROUP BY `usuario`.`apellido1`,`asignatura`.`nombre`
HAVING COUNT(*)>1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder