Dalej•LEKCJA 18 / 26

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.

Cel lekcji

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

  1. SELECT u.name, COUNT(o.id) AS orders_countWybieramy kolumny lub obliczenia, które mają trafić do wyniku.
  2. FROM users uWskazujemy tabelę źródłową.
  3. LEFT JOIN orders o ON o.user_id = u.idŁączymy dane po pasujących kluczach.
Oczekiwany wynik / efektpo uruchomieniu przykładu
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ń.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.