Dane bez pytań to martwe zwoje. Prawdziwa moc Biblioteki budzi się dopiero, gdy łączymy regały i liczymy wzorce. Przypomnijmy dwa filary tej sztuki.
JOIN zestawia wiersze z dwóch tabel po wspólnej kolumnie. Najczęściej łączymy tabelę po jej kluczu obcym. Warunek dopasowania zapisujemy po słowie ON:1SELECT c.imie, w.data_wypozyczenia
2FROM czytelnicy c
3JOIN wypozyczenia w ON c.id = w.czytelnik_id;JOIN) - zwraca tylko sparowane wiersze.NULL).GROUP BY skleja wiersze o tej samej wartości w jedną grupę, a funkcje agregujące liczą coś dla każdej grupy:1SELECT czytelnik_id, COUNT(*) AS liczba
2FROM wypozyczenia
3GROUP BY czytelnik_id;To zapytanie odpowiada: "Ile razy każdy czytelnik coś wypożyczył?". Najczęstsze funkcje to
COUNT(), SUM(), AVG(), MIN(), MAX().Połączone dają raporty - serce każdej biblioteki:
1SELECT c.imie, COUNT(*) AS liczba
2FROM czytelnicy c
3JOIN wypozyczenia w ON c.id = w.czytelnik_id
4GROUP BY c.id;Najpierw łączymy regały, potem grupujemy i liczymy. Tak powstaje wiedza z surowych danych!