Sobes.tech
Junior

Šta je LEFT JOIN u SQL-u?

sobes.tech АИ

Одговор од АИ

Levo spajanje (LEFT JOIN ili LEFT OUTER JOIN) u SQL-u vraća sve redove iz "leve" tablice i odgovarajuće redove iz "desne" tablice. Ako se ne pronađe podudaranje u desnoj tablici, vrijednosti stupaca desne tablice bit će NULL.

  • Sintaksa:

    SELECT popis_stupaca
    FROM tablica1  -- Lijeva tablica
    LEFT JOIN tablica2 ON tablica1.stupac = tablica2.stupac;
    
  • Rezultat:

    • Sve redove iz tablica1.
    • Odgovarajuće redove iz tablica2.
    • Za redove iz tablica1 bez podudaranja u tablica2, stupci tablica2 sadržavat će NULL.
  • Primjer:

    Pretpostavimo da imamo dvije tablice: Orders i Customers. Želimo dobiti popis svih narudžbi i informacije o kupcima koji su ih napravili. Ako narudžba nema kupca (npr. obrisanog), i dalje želimo vidjeti tu narudžbu.

    -- Tablica Orders
    -- OrderID | CustomerID | OrderDate
    -- 1       | 101        | 2023-10-26
    -- 2       | 102        | 2023-10-26
    -- 3       | NULL       | 2023-10-27
    
    -- Tablica 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