Bonjour,
Je suis entrain de revoir mes cours de BD car j'ai mon exa de rattrapage dans une semaine.
Voici ma question, ou plutôt la question qui est posé dans l'exercice.
Considéront le schéma de la base de données :
Fournisseur(fid : varchar, fnom : varchar, adresse : varchar)
Produit (pid : integer, pnom : varchar, couleur : varchar)
Catalogue (fid : integer, pid : integer, cout : real )
La question qui est posé est la suivante.
Quel est le nom des produits fournis par <<Stratégique Fournisseur>> et seulement par lui ?
Voici ma première réponse :
Cette requêtes me semble juste puisque, il me semble que tout y est mis dedans. Mais quand je regarde le corrigé, mon prof écrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT P.pnom FROM Fournisseur F, Produit P, Catalogue C WHERE F.fnom = "Stratégique Fournisseur" and F.fid = C.fid and C.pid = P.pid
Après avoir lu cette requête, que je ne comprends pas je me suis dis que je n'avais pas mis assé de condition de jointure à ma requête précédente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT DISTINCT P.pnom FROM Produit P, Catalogue C, Fournisseur F WHERE P.pid = C.pid AND C.fid = F.fid AND P.nom = "Stratégique Fournisseur" AND NOT EXISTS (SELECT "0" FROM Catalogue C1 WHERE C1.fid <> F.fid AND C1.pid = P.pid);
Pourriez-vous m'expliquer un peu cette requête ?
Et voilà la deuxième requête que j'ai pondu pour le même exercice. QUe pensez-vous de celle là ? Peut-être que je ne traite pas les exclusion "fournis par <<Stratégique Fournisseur>> et seulement par lui ?"
Je ne connais pas le résultat de ces trois requêtes puisque tout est fait sur papier D'ailleurs l'examen aussi serra sur papier. Avez-vous des conseil à me donner ou des liens pour mieux comprendre là conception d'une requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT P.pnom FROM Produit P JOIN Catalogue C ON C.pid = P.pid JOIN Fournisseur F ON F.fid = C.fid ON F.fnom = <<Stratégique Fournisseur>>
Merci à tous pour votre aide
Partager