MySQL - selects multiples

 
Vista:

selects multiples

Publicado por mario (2 intervenciones) el 04/07/2005 08:07:09
Hola a todos, tengo el siguiente problema:
tengo una tabla de alumnos con sus respectivos datos, una tabla de asignaturas y una tabla de ramos aprobados por alumnos, de la sigiente manera

CREATE TABLE alumnos(
rut_alumno varchar(10) not null primary key,
nombre varchar(20) not null,
ap_paterno char (20) not null,
ap_materno char (20) not null,
cod_carrera int not null
);

CREATE TABLE asignaturas(
cod_asignatura varchar(7) not null,
cod_carrera int not null
);

CREATE TABLE ramos_aprobados(
rut_alumno varchar(10) not null,
cod_asignatura varchar(7) not null,
estado varchar(10) //'APROBADO'
);

CREATE TABLE carreras(
cod_carrera integer not null,
nombre_carrera varchar(50) not null
);

lo que quiero hacer es una consulta a los ramos que le falta por tomar, o sea que me muestre todas las asignaturas de la tabla 'asignaturas' menos los que esten en la tabla 'ramos_aprobados'.
por ejemplo si la tabla asignaturas tiene 20 asignaturas y un alumno tiene 5 ramos aprobados, necesito que me muestretodos los siguientes restantes

Hasta ahora solo tengo un select que me muestra todas las asignaturas de la carrera de un alumno:

select distinct
carreras.cod_carrera as 'Codigo',
carreras.nombre_carrera as 'Nombre Carrera',
asignaturas.cod_asignatura as 'Codigo',
asignaturas.nombre as 'Nombre'

from asignaturas,carreras,alumnos,ramos_aprobados

where
alumnos.cod_carrera=carreras.cod_carrera and
carreras.cod_carrera=asignaturas.cod_carrera

Lo que se es como hacer un JOIN con la tabla ramos_aprobados para esos ramos no los muestre, a todo esto estoy usando mysql 4.0.13, ¿debo actualizar a otra version para que funcionen las subconsultas?

Gracias por alguna respuesta que me clarifique el asunto

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