Menu
Coddy logo textTech

Repaso: autounión

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:

  • friends: id, name, friend_id

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

  • friend1: la persona inicial
  • friend2: su amiga directa
  • friend3: la amiga de su amiga

Reglas:

  • No incluyas los casos en los que 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, entonces Alice-Bob-Carol sería una conexión válida de amigo de un 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 a la persona de la que partieron
WHERE ____
ORDER BY ____ DESC;

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL