Sobes.tech
Junior

Ce este o îmbinare stângă (left join) în SQL?

sobes.tech AI

Răspuns de la AI

JOIN-ul stâng (LEFT JOIN sau LEFT OUTER JOIN) în SQL returnează toate rândurile din "tabela stângă" și rândurile corespunzătoare din "tabela dreaptă". Dacă nu se găsește o corespondență în tabela dreaptă, valorile coloanelor din tabela dreaptă vor fi NULL.

  • Sintaxă:

    SELECT lista_de_coloane
    FROM tabel1  -- Tabela stângă
    LEFT JOIN tabel2 ON tabel1.coloană = tabel2.coloană;
    
  • Rezultat:

    • Toate rândurile din tabel1.
    • Rândurile corespunzătoare din tabel2.
    • Pentru rândurile din tabel1 fără corespondență în tabel2, coloanele din tabel2 vor conține NULL.
  • Exemplu:

    Să presupunem că avem două tabele: Orders și Customers. Dorim să obținem o listă cu toate comenzile și informațiile despre clienții care le-au plasat. Dacă o comandă nu are client (de exemplu, șters), dorim totuși să vedem acea comandă.

    -- 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