SQL - consulta con exists

 
Vista:

consulta con exists

Publicado por damian (1 intervención) el 14/12/2010 16:59:30
Hola! quiero hacer una consulta al foro ya que estoy perdido con una consulta que debor realizar para un practico en donde la profe nos dijo como ayuda que se utiliza Exists. La consulta seria asi: mostrar las materias que no tienen cursados ni exámenes en algún periodo del 2008; ordenado por nombre de la materia.
Las tablas que tengo son: Materias (cod_materia, nom_materia), Cursados (id_cursados, cod_materia), examenes (id_examen, cod_materia).
Yo hice esto pero egun la profe esta muy mal.

elect materias.cod_materias, materias.nom_materias from materias where exists (SELECT cursados.Id_cursados, cursados.cod_materia, examenes.Id_examen, examenes.cod_materia
FROM Materias INNER JOIN (cursados INNER JOIN examenes ON cursados.cod_materia = examenes.cod_materia) ON
(Materias.cod_materia = cursados.cod_materia) AND (Materias.cod_materia = examenes.cod_materia))

gracias de antemano..

damian
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:consulta con exists

Publicado por Leonardo Josué (1173 intervenciones) el 15/12/2010 18:18:35
Buenos días damian, por lo que entendí en tu post una materia puede tener 0 o más Cursados y 0 o más exámenes, no veo ninguna relación directa entre cursados y exámenes (a menos que te falte definir más información al respecto)

La consulta la puedes hacer así:

select * from Materias where
not exists (
select cod_materia from Cursados
where Cursados.cod_materia = Materias.cod_materia
) and
not exists (
select cod_materia from Examenes
where Examenes.cod_materia = Materias.cod_materia
)
order by Materias.nom_materia

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar