Sobes.tech
Junior

Kas yra kairioji jungtis (left join) SQL?

sobes.tech AI

Atsakymas iš AI

Kairio jungtis (LEFT JOIN arba LEFT OUTER JOIN) SQL grąžina visas "kairės" lentelės eilutes ir atitinkančias "dešinės" lentelės eilutes. Jei dešinėje lentelėje nerandama atitikimo, dešinės lentelės stulpų reikšmės bus NULL.

  • Sintaksė:

    SELECT stulpų_sarasas
    FROM lentelė1  -- Kairė lentelė
    LEFT JOIN lentelė2 ON lentelė1.stulpas = lentelė2.stulpas;
    
  • Rezultatas:

    • Visos eilutės iš lentelė1.
    • Atitinkančios eilutės iš lentelė2.
    • Eilutėms iš lentelė1, kurios neturi atitikimo lentelė2, lentelė2 stulpai bus NULL.
  • Pavyzdys:

    Tarkime, turime dvi lenteles: Orders ir Customers. Norime gauti visų užsakymų sąrašą ir informaciją apie klientus, kurie juos atliko. Jei užsakymas neturi kliento (pvz., ištrintas), vis tiek norime matyti tą užsakymą:

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