Logo Platforma Edukacyjna - kursy do matury i egzaminów z informatyki

LEFT JOIN i trzy tabele

JOIN gubi wiersze, które nie mają pary. LEFT JOIN zostawia każdy wiersz z lewej tabeli, a brakującą parę wypełnia NULL.

Najpierw teoria

JOIN, LEFT JOIN, RIGHT JOIN

`JOIN` (inaczej INNER JOIN) zostawia tylko część wspólną: wiersze, które znalazły parę.

`LEFT JOIN` zostawia całe lewe koło, czyli każdy wiersz z tabeli przed słowem JOIN. Bez pary dostaje NULL.

RIGHT JOIN to to samo z drugą stroną. Na maturze wystarczy LEFT JOIN z tabelami ustawionymi w dobrej kolejności.

JOIN
LEFT JOIN
RIGHT JOIN
2bbez wychowawcy: przy JOIN odpada, przy LEFT JOIN zostaje zNULL

Klasa 2b nie ma wychowawcy. Przy LEFT JOIN zostaje w wyniku, a zamiast nauczyciela dostaje NULL.

To zapytanie możesz zmienić: kliknij w nie, wpisz swoje i naciśnij Enter. Uczniowie odegrają Twoją wersję.

FROM klasy AS k: 4 wiersze w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/5
nazwawychowawca_id
3a1
3b3
2a2
2bNULL

Tak znajdziesz wiersze bez pary: po LEFT JOIN zostawiasz te, w których druga tabela ma NULL.

FROM klasy AS k: 4 wiersze w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/6
nazwawychowawca_id
3a1
3b3
2a2
2bNULL

Z LEFT JOIN policzysz też grupy, w których nikogo nie ma. COUNT(u.id) nie liczy NULL, więc pusta klasa dostaje 0.

FROM klasy AS k: 4 wiersze w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/6
idnazwa
13a
23b
32a
42b

Trzy tabele łączysz dwoma JOIN po kolei. Ocena ma numer ucznia i numer przedmiotu, a imię i nazwa przedmiotu stoją w innych tabelach.

FROM oceny AS o: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/8
uczen_idprzedmiot_idocena
116
125
315
334
413
422