Samozłączenie
Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 46 z 72.
Złączenia własne to różne rodzaje złączeń. Do tej pory omawialiśmy złączenia wielu tabel, ale złączenia własne dotyczą tej samej tabeli. Klasycznym przykładem może być tabela pracowników.
| employee_id | employee_name | manager_id |
| 1 | Minke | 2 |
| 2 | Temur | 3 |
| 3 | Tatjana | 4 |
| 4 | Marinela |
Każdy pracownik ma kierownika z wyjątkiem kierownika najwyższego szczebla, a każdy kierownik jest również pracownikiem.
Problem: Chcemy poznać imię i nazwisko menedżera każdego pracownika.
SELECT e2.employee_id, e2.employee_name, e1.employee_name as manager_name
FROM employees as e1
JOIN employees as e2 ON e1.employee_id = e2.manager_idWykonujemy złączenie tej samej tabeli, ale za pierwszym razem nazywamy ją e1, a za drugim e2. Złączenie odbywa się między polami employee_id i manager_id.
Wynik:
| employee_id | employee_name | manager_name |
|---|---|---|
| 1 | Minke | Temur |
| 2 | Temur | Tatjana |
| 3 | Tatjana | Marinela |
Wyzwanie
ŚredniDostępne tabele i kolumny:
friends:id,name,friend_id
Znajdź pary znajomych, którzy są znajomymi nawzajem (wzajemna przyjaźń istnieje, gdy friend_id osoby A wskazuje na osobę B ORAZ friend_id osoby B wskazuje na osobę A). Wyświetl imiona obu znajomych w jednym wierszu. Nazwij kolumny friend1 i friend2.
Uwaga: Uwzględnij w klauzuli WHERE kryterium friend1.id < friend2.id, aby nie uwzględniać zduplikowanych par
Spróbuj swoich sił
-- Połącz tabelę z nią samą, aby jeden wiersz mógł przedstawiać dwie różne osoby
SELECT ____ AS friend1, ____ AS friend2
FROM friends f1
JOIN friends f2 ON ____
-- Zachowaj tylko pary, które wskazują na siebie nawzajem
WHERE ____ AND f1.id < f2.id;Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Więcej słów kluczowych
Słowo kluczowe INSłowo kluczowe BETWEENSłowo kluczowe LIKESłowo kluczowe ASPowtórzenie – modele telefonów komórkowych2Instrukcje warunkowe
Podstawy instrukcji warunkowychSłowo kluczowe ANDSłowo kluczowe ORSłowo kluczowe NOTŁączenie wielu warunkówNawiasyWartości logiczne3Określony format zwracanych danych
Wartości nullSortowanie wyników — część 1Sortowanie wyników — część 2Powtórzenie — firma zajmująca się cyberbezpieczeństwemOgraniczanie liczby rekordówPowtórzenie — fabryka pojazdów6Wyzwania na początek
Powtórka – wybory parlamentarnePowtórka – zatrzymanie przestępcy przez policjęPowtórka – pojemnik na napój w barzePowtórka – inżynier: nowe kolumnyPoćwicz samodzielnie: Edytor online SQL