Aller au contenu principal

Requêtes avec jointures

Nous allons utiliser la base de données « bibliotheque »

remarque

Si vous n'avez pas créé la base de données « bibliotheque » veuillez consulter le tutoriel Premières requêtes

Écrire des requêtes SQL pour répondre aux questions que se pose la documentaliste.

Voici le MCD

MCD_bibliotheque.png

A partir du schéma « Modèle Conceptuel de Données » MCD représenté ci-dessus, écrire les requêtes SQL pour répondre aux questions suivantes.

Télécharger le MCD

Voici le MLD

  • AUTEURS (idauteur, nom, prenom, datenaiss, datedeces, bibliographie, #idlivre)
  • EDITEURS (idediteur, nom, adresse, code, ville, pays, telephone, fax, #idlivre)
  • EMPRUNTEURS (idemprunteur, nom, prenom, adresse, code, ville, telephone, sexe, datenaiss, nbretards)
  • EMPRUNTS (idemprunt, datepret, daterendu, #idlivre, #idemprunteur)
  • LIVRES (idlivre, isbn, titre, nbpages, dateparu, prix, theme, format)

Voici le MPD

MPD_bibliotheque.png


1. Comment afficher les titres des livres avec les prénoms et noms de leurs auteurs ?

Une solution
select livres.titre, auteurs.prenom, auteurs.nom from livres 
join auteurs on livres.idauteur = auteurs.idauteur;


MPD_bibliotheque.png

2. Comment afficher les titres des livres avec les prénoms et noms de leurs auteurs et le nom de l’éditeur ?

Une solution
select livres.titre, auteurs.prenom, auteurs.nom, editeurs.nom from livres 
join auteurs on livres.idauteur = auteurs.idauteur
join editeurs on livres.idediteur = editeurs.idediteur;


MPD_bibliotheque.png

3. Comment afficher les titres des livres avec les prénoms et noms de leurs emprunteurs ?

Une solution
select livres.titre, emprunteurs.prenom, emprunteurs.nom 
from livres
join emprunts on livres.idlivre = emprunts.idlivre
join emprunteurs on emprunts.idemprunteur = emprunteurs.idemprunteur;


MPD_bibliotheque.png

4. Comment afficher les titres des livres avec les prénoms et noms de leurs auteurs et le nom de l’éditeur et les prénoms et noms de leurs emprunteurs ?

Une solution
select livres.titre, 
auteurs.prenom, auteurs.nom,
editeurs.nom, emprunteurs.prenom, emprunteurs.nom
from livres
join auteurs on livres.idauteur = auteurs.idauteur
join editeurs on livres.idediteur = editeurs.idediteur
join emprunts on livres.idlivre = emprunts.idlivre
join emprunteurs on emprunts.idemprunteur = emprunteurs.idemprunteur;


MPD_bibliotheque.png

5. Comment afficher la liste des emprunteurs (nom et prénom) qui ont emprunté des livres après le 1er Octobre 2019 ?

Une solution
select emprunteurs.nom, emprunteurs.prenom from emprunteurs 
join emprunts on emprunteurs.idemprunteur = emprunts.idemprunteur
where emprunts.datepret > '2019-10-01';


MPD_bibliotheque.png

6. Comment afficher la liste des livres (titre) qui n'ont jamais été empruntés ?

Une solution
select livres.titre from livres
left join emprunts on livres.idlivre = emprunts.idlivre
where emprunts.idlivre is null;