Exists
2 réponses
-
Bonjour
Commençons par la sous-requête la plus interne :SELECT * FROM Emprunt v WHERE v.Personne=t.Personne AND v.Livre=u.Livre
Cette requête sort les lignes où t.Personne a emprunté le livre u.Livre
Jusque là, ça va ?
Donc il n'y a pas de ligne si t.Personne N'A PAS emprunté le livre u.Livre
doncSELECT * FROM Emprunt u WHERE NOT EXISTS ( SELECT * FROM Emprunt v WHERE v.Personne=t.Personne AND v.Livre=u.Livre )
sélectionne les livres que t.Personne n'A PAS empruntés
Il n'y aura pas de ligne si t.Personne a emprunté TOUS les livres
doncWHERE NOT EXISTS SELECT * FROM Emprunt u ...
sélectionne les lignes où t.Personne a emprunté tous les livres
Faut avouer que c'est bien tordu comme manière de raisonner. -
Ouii vous avez raison , Merci beaucoup
:)
