Bonjour à tous, j'ai un problème pour créer une requête SQL sous Access, j'ai essayé plusieurs choses qui me paraissaient logiques et faisables mais qui finalement ne fonctionnent pas ...
La requête : quels sont les étudiants inscrits à un module mais qui n’assistent pas à la programmation d’un module ?

J'ai Le Schéma relationnel suivant :

APPRENTI (ID_APPRENTI, NOM_APPRENTI, DATENAISSANCE, STATUT_APPRENTI, MAIL_APPRENTI, MAIL_APPRENTI, N_VOIE, RUE, CODEPOSTAL, VILLE)
ASSISTER (ID_PROGRAMMATION*, ID_APPRENTI* )
INSCRIRE (ID_APPRENTI*, ID_MODULE*, NOTE, ANNÉE, MENTION, ETAT_INSCRIPTION)
MODULE (ID_MODULE, NOM_DOMAINE_PEUT_AVOIR*, CONTENU_M, NIVEAU_M)
REPRÉSENTER (ID_MODULE*, ID_PROGRAMMATION*)
PROGRAMMATIONMODULE (ID_PROGRAMMATION, ID_ENSEIGNANT*, DATEDEBUT, DATEFIN, PLACELIBRE, NBHERURES)

J'ai alors pensé à une différence en utilisant "NOT IN" : (sc chaque apprenti est inscrit à un module)SELECT Apprenti.NomApprenti, Inscrire.IdModule
FROM Apprenti, Inscrire
WHERE Apprenti.IdApprenti=Inscrire.IdApprenti
AND Apprenti.NomApprenti NOT IN
(SELECT Apprenti.NomApprenti
FROM Apprenti, Assister
WHERE Apprenti.IdApprenti<>Assister.IdApprenti);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT Apprenti.NomApprenti, Inscrire.IdModule
FROM Apprenti, Inscrire
WHERE Apprenti.IdApprenti=Inscrire.IdApprenti
AND Apprenti.NomApprenti NOT IN
(SELECT Apprenti.NomApprenti
FROM Apprenti, Assister
WHERE Apprenti.IdApprenti<>Assister.IdApprenti);
Merci beaucoup d'avance