COUNT w LEFT JOIN
Kurs SQL · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
Po LEFT JOIN użytkownik bez zamówień nadal występuje w wyniku.
Poznać zagadnienie „COUNT w LEFT JOIN”, zrozumieć przykład i umieć zastosować podobny zapis we własnym programie.
Wyjaśnienie krok po kroku
COUNT(o.id) liczy istniejące zamówienia, natomiast COUNT(*) liczyłby także wiersz bez dopasowania.
Najpierw przeanalizuj kod bez uruchamiania. Zwróć uwagę, jakie dane wykorzystuje program, co z nimi robi i skąd bierze się wynik pokazany pod przykładem.
Praktyczny przykład
Gdzie zobaczysz efekt: Wynik zapytania w bazie danych
Uwaga: Ten przykład zakłada istnienie tabel o pokazanych nazwach, chyba że właśnie tworzy tabelę. Podany wynik zależy od danych, które umieścisz w bazie. Składnia demonstracyjna jest zbliżona do SQLite.
SELECT u.name, COUNT(o.id) AS orders_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.name;
Przeczytaj kod linijka po linijce
SELECT u.name, COUNT(o.id) AS orders_countWybieramy kolumny lub obliczenia, które mają trafić do wyniku.FROM users uWskazujemy tabelę źródłową.LEFT JOIN orders o ON o.user_id = u.idŁączymy dane po pasujących kluczach.
Użytkownik bez zamówień otrzymuje orders_count = 0.
Jak utrwalić tę umiejętność?
Przepisz kod samodzielnie. Następnie zmień jedną wartość lub jedną instrukcję i spróbuj przewidzieć efekt. Dopiero potem uruchom zmienioną wersję. Jeśli wynik jest inny niż oczekiwany, porównaj kolejne linie.
Spróbuj samodzielnie
Wyświetl tylko osoby bez zamówień.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.