Menu
Coddy logo textTech

Recap - Self Join

Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 47 de 72.

challenge icon

Desafío

Difícil

Tablas y columnas disponibles:

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

Para cada persona en la tabla friends, encuentra todas las conexiones de amigos de amigos que tengan. Una conexión de amigo de amigo ocurre cuando la persona A es amiga de la persona B, quien a su vez es amiga de la persona C. Muestra estas conexiones en tres columnas:

  • friend1: la persona de origen
  • friend2: su amigo directo
  • friend3: el amigo de su amigo

Reglas:

  • No incluyas casos donde friend3 sea la misma persona que friend1
  • Ordena los resultados por el nombre de friend1 en orden descendente

Ejemplo: Si Alice es amiga de Bob, y Bob es amigo de Carol, después Alice-Bob-Carol sería una conexión válida de amigo de amigo.

Pruébalo tú mismo

-- Une la tabla consigo misma dos veces para que una fila contenga una cadena de tres personas
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Descarta las cadenas que vuelven en bucle a la persona de la que partieron
WHERE ____
ORDER BY ____ DESC;

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL