Dalej•LEKCJA 17 / 26

LEFT JOIN

Kurs SQL · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

LEFT JOIN zachowuje wiersze z lewej tabeli nawet bez dopasowania.

Jak to działa?

Jeżeli użytkownik nie ma zamówienia, pola z prawej tabeli będą miały wartość NULL. To przydatne przy szukaniu brakujących relacji.

Przykład 1 — poznaj zapis

SELECT u.name, o.id AS order_id
FROM users AS u
LEFT JOIN orders AS o ON o.user_id = u.id;

Wynik zawiera także użytkowników bez zamówień.

Przeczytaj kod linijka po linijce

  1. SELECT u.name, o.id AS order_idWybieramy kolumny lub obliczenia, które mają trafić do wyniku.
  2. FROM users AS uWskazujemy tabelę źródłową.
  3. LEFT JOIN orders AS o ON o.user_id = u.id;Łączymy dane po pasujących kluczach.
Oczekiwany wynik / efektpo uruchomieniu przykładu
Wszyscy użytkownicy; dla osoby bez zamówień order_id jest NULL.

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

SELECT u.name FROM users u LEFT JOIN orders o ON o.user_id = u.id WHERE o.id IS NULL;
Wynik drugiego przykładupo uruchomieniu przykładu
Użytkownicy bez zamówień.
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Znajdź użytkowników bez zamówień przez WHERE o.id IS NULL.

To już koniec tej lekcji.

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