Tema: Ayuda!!
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/01/2002, 01:04
agarciaa
 
Fecha de Ingreso: julio-2001
Mensajes: 278
Antigüedad: 23 años, 9 meses
Puntos: 0
Re: Ayuda!!

Alumnos
| id_alumno | Nombre_alumno | APaterno_alumno | AMaterno_alumno |

Materia
| id_materia | Nombre_materia | creditos_materia |

Como las tablas se relacionan muchas a muchas, no puedes hacer una relación directa
si no crear una tabla asociativa a ambas cuyos Id de las dos tablas que generan la tercera
serán las llaves foraneas de la nueva tabla.

Alum_Mat
| id_alum_mat | id_alumno | id_materia | cal_parcial | cal_final |


Ahora por ejemplo:


TABLA: Alumnos
|---------|-------------|---------------|---------------|
|id_alumno|Nombre_alumno|APaterno_alumno|AMaterno_ alumno|
|---------|-------------|---------------|---------------|
|994532-8 |Pedro |Picapiedra | |
|983562-4 |Pablo |Marmol | |
|-------------------------------------------------------|

TABLA: Materia
|----------|--------------|----------------|
|id_materia|Nombre_materia|creditos_materia|
|----------|--------------|----------------|
|ma001-12 |Matemáticas |4 |
|ma004-62 |Geografía |3 |
|ma014-45 |Historia |3 |
|------------------------------------------|


TABLA: Alum_Mat
|-----------|---------|----------|-----------|----------|
|id_alum_mat|id_alumno|id_materia|cal_parcial|cal_ final |
|-----------|---------|----------|-----------|----------|
|1 |994532-8 |ma001-12 |8 |6 |
|2 |994532-8 |ma004-62 |5 |5 |
|3 |994532-8 |ma004-45 |9 |6 |
|4 |983562-4 |ma004-62 |10 |9 |
|5 |983562-4 |ma004-45 |8 |8 |
|-------------------------------------------------------|

Ahora por ejemplo si yo quiero seleccionar a todos los alumnos que no hayan reprobado en su calificación final

"SELECT * FROM Alumnos WHERE id_alumno IN (SELECT id_alumno FROM Alum_Mat WHERE cal_fina>5)"


Las calificaciones que puse pueden ponerse de otra manera, tal vez esto te dé una mejor idea .

Saludos

<a href="http://www.unitecos.net">
<img src="http://www.soportexpresso.com/pass/correo/agarciaa.jpg" border=0>
</a>