Requêtes avec jointures
Nous allons utiliser la base de données « bibliotheque »
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

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.
Voici le MLD au format texte
- 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 MLD sous forme d'un schéma

1. Comment afficher les titres des livres avec les prénoms et noms de leurs auteurs ?
Quand on fait des JOIN, deux tables peuvent avoir des colonnes portant le même nom (ex. nom dans auteurs et editeurs).
Préfixez toujours : auteurs.nom, editeurs.nom. Sans préfixe, SQL retourne une erreur d'ambiguïté
et vous ne savez plus quelle colonne est affichée.
2. Comment afficher les titres des livres avec les prénoms et noms de leurs auteurs et le nom de l'éditeur ?
3. Comment afficher les titres des livres avec les prénoms et noms de leurs emprunteurs ?
4. Comment afficher les titres des livres avec auteurs, éditeur et emprunteurs ?
5. Comment afficher la liste des emprunteurs (nom et prénom) qui ont emprunté des livres après le 1er Octobre 2019 ?
6. Comment afficher la liste des livres (titre) qui n'ont jamais été empruntés ?
Le pattern LEFT JOIN ... WHERE table_droite.colonne IS NULL est la façon standard de trouver
les enregistrements sans correspondance (livres jamais empruntés, clients sans commandes...).
INNER JOIN ne retourne que les correspondances ; seul LEFT JOIN garde les lignes sans match,
que IS NULL permet alors d'identifier.
Une solution
Vous devez être connecté pour voir le contenu.