Adloun

Autojointures

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 16 — SQL : jointures, agrégation et requêtes imbriquées

Énoncé

Rédiger les requêtes SQL retournant : (a) les paires de livres différents écrits par un même auteur ; (b) les paires d'usagers habitant la même ville ; (c) les couples de livres parus la même année mais écrits par des auteurs différents.

Corrigé

-- (a) Paires de livres d'un même auteur
SELECT l1.titre, l2.titre FROM livre AS l1
JOIN livre AS l2 ON l1.id_auteur = l2.id_auteur
WHERE l1.id_livre < l2.id_livre;

-- (b) Paires d'usagers habitant la même ville
SELECT u1.nom, u2.nom FROM usager AS u1
JOIN usager AS u2 ON u1.ville = u2.ville
WHERE u1.id_usager < u2.id_usager;

-- (c) Livres parus la même année mais écrits par des auteurs différents
SELECT l1.titre, l2.titre, l1.annee FROM livre AS l1
JOIN livre AS l2 ON l1.annee = l2.annee
WHERE l1.id_auteur <> l2.id_auteur AND l1.id_livre < l2.id_livre;

Dans chaque cas, la condition id1 &lt; id2 évite de renvoyer l'association d'un élément avec lui-même et limite le résultat aux paires non ordonnées (excluant les doublons de permutation).

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.