Menu
Coddy logo textTech

Powtórka — samozłączenie

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 47 z 72.

challenge icon

Wyzwanie

Trudny

Dostępne tabele i kolumny:

  • friends: id, name, friend_id

Dla każdej osoby w tabeli friends znajdź wszystkie jej połączenia ze znajomymi znajomych. Połączenie ze znajomym znajomego występuje wtedy, gdy osoba A przyjaźni się z osobą B, która z kolei przyjaźni się z osobą C. Wypisz te połączenia w trzech kolumnach:

  • friend1: osoba początkowa
  • friend2: jej bezpośredni znajomy
  • friend3: znajomy jej znajomego

Zasady:

  • Nie uwzględniaj przypadków, w których friend3 jest tą samą osobą co friend1
  • Posortuj wyniki według imienia friend1 w kolejności malejącej

Przykład: jeśli Alice przyjaźni się z Bobem, a Bob przyjaźni się z Carol, to Alice-Bob-Carol będzie prawidłowym połączeniem ze znajomym znajomego.

Spróbuj swoich sił

-- Połącz tabelę dwukrotnie z samą sobą, aby jeden wiersz zawierał łańcuch trzech osób
SELECT ____ AS friend1, ____ AS friend2, ____ AS friend3
FROM friends f1
JOIN friends f2 ON ____
JOIN friends f3 ON ____
-- Odrzuć łańcuchy, które wracają do osoby, od której się zaczęły
WHERE ____
ORDER BY ____ DESC;

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL