Sobes.tech
Junior

Czym jest lewostronne połączenie (left join) w SQL?

sobes.tech AI

Odpowiedź od AI

Lewe połączenie (LEFT JOIN lub LEFT OUTER JOIN) w SQL zwraca wszystkie wiersze z "lewej" tabeli i odpowiadające im wiersze z "prawej" tabeli. Jeśli nie zostanie znaleziona zgodność w prawej tabeli, wartości kolumn z prawej tabeli będą NULL.

  • Składnia:

    SELECT lista_kolumn
    FROM tabela1  -- Tabela lewa
    LEFT JOIN tabela2 ON tabela1.kolumna = tabela2.kolumna;
    
  • Wynik:

    • Wszystkie wiersze z tabela1.
    • Odpowiadające wiersze z tabela2.
    • Dla wierszy z tabela1, które nie mają dopasowania w tabela2, kolumny tabela2 będą zawierać NULL.
  • Przykład:

    Załóżmy, że mamy dwie tabele: Orders i Customers. Chcemy uzyskać listę wszystkich zamówień i informacje o klientach, którzy je złożyli. Jeśli zamówienie nie ma klienta (np. usuniętego), nadal chcemy widzieć to zamówienie.

    -- Tabela Orders
    -- OrderID | CustomerID | OrderDate
    -- 1       | 101        | 2023-10-26
    -- 2       | 102        | 2023-10-26
    -- 3       | NULL       | 2023-10-27
    
    -- Tabela Customers
    -- CustomerID | CustomerName
    -- 101        | Alice
    -- 102        | Bob
    
    SELECT
        O.OrderID,
        C.CustomerName
    FROM
        Orders AS O
    LEFT JOIN
        Customers AS C ON O.CustomerID = C.CustomerID;
    
    OrderID CustomerName
    1 Alice
    2 Bob
    3 NULL