Ho questo schema relazionale:
DOCENTE(Codice,Nome,Cognome)
STUDENTE(Codice,Nome,Cognome)
ARGOMENTO(Codice,Descrizione)
LEZIONE(CodiceArg,Data,CodiceDocente,NumStudenti)
Foreign Key CodiceArg References ARGOMENTO
Foreign Key CodiceDocente References DOCENTE
NumStudenti è il numero di studenti presenti a lezione
INTERROGAZIONE(CodiceArg,Data,CodiceStudente,Voto)
Foreign Key CodiceArg,Data References LEZIONE
Foreign Key CodiceStudente References STUDENTE
In questa relazione si memorizza l’interrogazione e il relativo voto dello studente CodiceStudente
durante una lezione
E la seguente query:
Mostrare il Codice, il Nome ed il Cognome degli studenti che non sono mai stati interrogati su un argomento con descrizione "Fisica".
Io ho fatto così:
SELECT *
FROM Studente S
WHERE S.Codice NOT IN (SELECT S.Codice
FROM Interrogazione I, Argomento A
WHERE I.CodiceArg = A.Codice AND I.CodiceStudente = S.Codice AND A.Descrizione="Fisica")
Posso sapere se la soluzione è corretta? Sulla prova da come soluzione questa:
SELECT *
FROM Studente S
WHERE NOT EXISTS
(SELECT *
FROM Interrogazione I, Argomento A
WHERE S.Codice = I.CodiceStudente
AND A.CodiceArg = I.CodiceArg
AND A.Descrizione = ‘Fisica’)
Volevo solo sapere se andava bene anche la mia.. Ringrazio in anticipo per le risposte