Ayuda con tabla de registros!

Hola amigos expertos,
no soy experto en mysql pero ya e hecho casi todo y me ha salido perfecto, yo estoy utilizando appserv como servidor y ahí creo la base de datos, mi problema es, tengo un sistema de inscripción, insripcion semestral, materias, prelaciones, calificaciones y todo bien, pero necesito que en el registro de materias aprobadas, poder asociar varias materias, con sus respectivas notas a una clave Id.
Cuando lo hago m dice que no se puede duplicar la clave cuando intento insertar y si lo hago sin el id como clave lee cada materia registrada de forma individual así tengan el mismo id,
espero hacerme entender y m puedan ayudar
Gracias de antemano...

1 respuesta

Respuesta
1
A ver si entendí tu pregunta.. Quieres insertar las notas de la materias en una tabla de movimiento de las materias aprobadas, pero la restricción de clave duplicada te lo impide, puedes hacer dos cosas: en la tabla de movimientos agregar una columna identidad que sea autoincrementable, y la otra solución depende de la estructura que tengas. Necesito más claridad para poder ayudarte
Ya lo solucione pero digamos que de una forma menos lógica pero si m puedes aclarar la duda para aprender pues no esta demás. Lo que quería era por ejemplo tengo la
tabla registro
id ! Materia ! Periodo
1              !matematica     !  sept-dic-2010
1              !ingles              !  sept-dic-2010
tengo otra tabla pemsum
nombremateria! 
Matemática !
Ingles !
Programación !
Al hacer la búsqueda mysql
select registro.materia
from materia,pemsum
where registro.id= 1 and registro.materia != pemsum.nombrenateria
m muestre solo: programación (xq mate y ingles ya estan en la tabla registro)
Pero m retorna:
Ingles
Programación
Matemática
Programación
Programación
Porque lo que hace es leer matemática y compara con tabla pemsum y devuelve: ingles, programación y ya ingles esta aprobada. A leer ingles devuelve matemática y programación y m retorna al final esa lista anterior. Si defino id como clave no m permite ingresar más de 2 veces por duplicidad.. noc como asociar varios registros a una clave principal yo lo hacia en access pero ya quiero utilizar es mysql ya que es mejor.
Muchas gracias por responder...
Puedes refinar o probar de la siguiente forma también:
select nombremateria 
from pemsum 
where pemsum.nombremateria not in (select materia from registro)
Esto quiere decir que escojas solo aquellos que estén en la tabla pensum y no en registro. Seria como una Diferencia de Conjuntos.
También podría ser esto una alternativa
select nombremateria from pensum where not exists (select materia from registro)
Espero que te sirva, en todo caso espero tus consultas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas