Menu
Coddy logo textTech

Recap - Self Join

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 :

  • <strong>friends</strong> : <strong>id</strong>, <strong>name</strong>, <strong>friend_id</strong>

Pour chaque personne dans la table friends, trouvez toutes les connexions d'ami d'ami qu'elle possède. Une connexion d'ami d'ami se produit lorsque la personne A est amie avec la personne B, qui est à son tour amie avec la personne C. Affichez ces connexions 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 le 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 serait une connexion d'ami d'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 ____
-- Supprimer les chaînes qui bouclent vers la personne dont elles sont parties
WHERE ____
ORDER BY ____ DESC;

Toutes les leçons de Les fondamentaux

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