Requêtes avec jointures
Petite vérification
Avant de commencer, vérifiez si vous savez...
- sur les tables
livreetgenre(liées parT1.id_genre = T2.id), expliquer ce que retourne la requêteSELECT * FROM livre AS T1 LEFT JOIN genre AS T2 ON T1.id_genre = T2.id WHERE T1.id_genre IS NULL; - calculer combien de lignes retournerait un
CROSS JOINentre une table de 30 lignes et une table de 40 lignes, et vérifier que vous obtenez bien 1200 lignes - citer le mot-clé SQL qui permet de simuler un
FULL JOINsous MariaDB/MySQL en combinantLEFT JOINetRIGHT JOIN
📌 Réponse attendue
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.