Sobes.tech
Junior

Cos'è una join sinistra (left join) in SQL?

sobes.tech AI

Risposta dell'AI

La join sinistra (LEFT JOIN o LEFT OUTER JOIN) in SQL restituisce tutte le righe della tabella "sinistra" e le righe corrispondenti della tabella "destra". Se non viene trovata corrispondenza nella tabella di destra, i valori delle colonne di quest'ultima saranno NULL.

  • Sintassi:

    SELECT elenco_colonne
    FROM tabella1  -- Tabella sinistra
    LEFT JOIN tabella2 ON tabella1.colonna = tabella2.colonna;
    
  • Risultato:

    • Tutte le righe di tabella1.
    • Le righe corrispondenti di tabella2.
    • Per le righe di tabella1 senza corrispondenza in tabella2, le colonne di tabella2 conterranno NULL.
  • Esempio:

    Supponiamo di avere due tabelle: Orders e Customers. Vogliamo ottenere un elenco di tutti gli ordini e le informazioni sui clienti che li hanno effettuati. Se un ordine non ha cliente (ad esempio, eliminato), vogliamo comunque vedere quell'ordine.

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