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
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


0