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

Ta interakcja wymaga włączonego JavaScriptu.

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.

Ta interakcja wymaga włączonego JavaScriptu.

Zdarzenia z czytelnymi nazwami

SQLsql
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;
Wynik
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

  1. Uruchom przykład z trzema tabelami na kopii bazy.
    Oczekiwany wynik5 zdarzeń z nazwami.
  2. Zacznij od Uczniowie i połącz INNER JOIN Wypozyczenia po id osoby.
    Oczekiwany wynikLeon nie występuje.
  3. Zmień na LEFT JOIN i zachowaj Uczniowie po lewej.
    Oczekiwany wynikLeon występuje raz z NULL po stronie wypożyczenia.
  4. Dodaj WHERE w.id IS NULL do wariantu LEFT JOIN.
    Oczekiwany wynikTylko Leon — osoba bez dopasowania.

Dwa typy złączenia

ZłączenieCo zostaje
INNER JOINTylko dopasowane pary
LEFT JOINWszystkie 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ń.

Oczekiwany rezultat
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.

Oczekiwany rezultat
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ć

  1. Połączysz trzy tabele i wyjaśnisz różnicę INNER JOIN oraz LEFT JOIN.
  2. Otwórz zapisany wynik w programie odbiorcy. Sprawdź, czy działa bez Twojej pomocy.
  3. 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ę →
Źródła i dalsza nauka