Menu
Coddy logo textTech

Récapitulatif - Auto-jointure

Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 47 sur 72.

challenge icon

Défi

Difficile

Tables et colonnes disponibles :

  • friends : id, name, friend_id

Pour chaque personne de la table friends, trouvez toutes les relations d’ami d’un ami qu’elle possède. Une relation d’ami d’un ami se produit lorsque la personne A est amie avec la personne B, qui est elle-même amie avec la personne C. Répertoriez ces relations sous forme de trois colonnes :

  • friend1 : la personne de départ
  • friend2 : son ami direct
  • friend3 : l’ami de son ami

Règles :

  • N’incluez pas les cas où friend3 est la même personne que friend1
  • Triez les résultats par nom de friend1, dans l’ordre décroissant

Exemple : si Alice est amie avec Bob et que Bob est ami avec Carol, alors Alice-Bob-Carol est une relation d’ami d’un ami valide.

Essayez vous-même

-- Joindre la table à elle-même deux fois pour qu'une ligne contienne une chaîne de trois personnes
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Éliminer les chaînes qui bouclent vers la personne de départ
WHERE ____
ORDER BY ____ DESC;

Toutes les leçons de Les fondamentaux

Entraînez-vous par vous-même : Playground SQL