Informatyka · Bazy danych · zakres rozszerzony
JOIN — odpowiedź z kilku tabel
Identyfikator sprzętu jest dobry dla bazy, ale człowiek chce zobaczyć nazwę. Połączymy informacje bez kopiowania ich do tabeli wypożyczeń.
- Zobacz mechanizm
- Wykonaj w programie
- Sprawdź własny wynik
Po tej lekcji: Połączysz trzy tabele i wyjaśnisz różnicę INNER JOIN oraz LEFT JOIN.
Zakres podstawowy · materiał otwarty
Sprawdź w działaniu
Materiały startowe
Sprawdź w działaniu
Kto znika przy INNER JOIN?
Przełącz typ złączenia. Wskaż osobę bez wypożyczenia i wyjaśnij NULL w wyniku.
Zdarzenia z czytelnymi nazwami
SELECT u.imie, s.nazwa
FROM Wypozyczenia AS w
JOIN Uczniowie AS u ON u.id = w.uczen_id
JOIN Sprzet AS s ON s.id = w.sprzet_id
ORDER BY w.id;
Ala | Aparat Olek | Statyw Ala | Mikrofon Iga | Aparat Olek | Tablet
Warunek ON nie jest ozdobą
Alias u oznacza Uczniowie, w — Wypozyczenia, s — Sprzet. ON mówi, które rekordy pasują do siebie. Brak właściwego warunku może połączyć każdą osobę z każdym zdarzeniem i zwielokrotnić wynik. Nie naprawiaj tego automatycznie DISTINCT — najpierw sprawdź relację.
Porównaj dopasowania
-
Uruchom przykład z trzema tabelami na kopii bazy.Oczekiwany wynik5 zdarzeń z nazwami.
-
Zacznij od Uczniowie i połącz INNER JOIN Wypozyczenia po id osoby.Oczekiwany wynikLeon nie występuje.
-
Zmień na LEFT JOIN i zachowaj Uczniowie po lewej.Oczekiwany wynikLeon występuje raz z NULL po stronie wypożyczenia.
-
Dodaj WHERE w.id IS NULL do wariantu LEFT JOIN.Oczekiwany wynikTylko Leon — osoba bez dopasowania.
Dwa typy złączenia
| Złączenie | Co zostaje |
|---|---|
| INNER JOIN | Tylko dopasowane pary |
| LEFT JOIN | Wszystkie wiersze lewej strony oraz dopasowania; dla braku po prawej NULL |
Ćwiczenie z pomocą · samodzielna praca
Osoba i sprzęt
Pokaż imię i nazwę dla niezwróconych wypożyczeń.
Ala–Aparat, Ala–Mikrofon, Olek–Tablet.
? Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź
Połącz przez id.
Krok 2 — pokaż podpowiedź
Brak zwrotu sprawdź IS NULL.
Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.
Ćwiczenie z pomocą · samodzielna praca
Bez dopasowania
Znajdź osoby bez żadnego wypożyczenia przez LEFT JOIN.
Leon.
? Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź
Zacznij od wszystkich osób.
Krok 2 — pokaż podpowiedź
Filtruj brak id zdarzenia.
Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.
Podsumowanie
Co warto zapamiętać
- Połączysz trzy tabele i wyjaśnisz różnicę INNER JOIN oraz LEFT JOIN.
- Otwórz zapisany wynik w programie odbiorcy. Sprawdź, czy działa bez Twojej pomocy.
- Wskaż jedną decyzję w swojej pracy i wyjaśnij jej skutek.
Po zalogowaniu zobaczysz dodatkowe lekcje i materiały oznaczone jako rozszerzenie. Podstawowe quizy i zadania pozostają dostępne w biurku.
Dalej na swoim koncie
Rozgrzewki, quiz i zadania są w biurku ucznia.
Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.
Zaloguj się →