Sobes.tech
Junior

Co je to levé spojení (left join) v SQL?

sobes.tech AI

Odpověď od AI

Levé spojení (LEFT JOIN nebo LEFT OUTER JOIN) v SQL vrací všechny řádky z "levé" tabulky a odpovídající řádky z "pravé" tabulky. Pokud není nalezena shoda v pravé tabulce, hodnoty sloupců pravé tabulky budou NULL.

  • Syntaxe:

    SELECT seznam_sloupců
    FROM tabulka1  -- Levá tabulka
    LEFT JOIN tabulka2 ON tabulka1.sloupec = tabulka2.sloupec;
    
  • Výsledek:

    • Všechny řádky z tabulka1.
    • Odpovídající řádky z tabulka2.
    • Pro řádky z tabulka1, které nemají shodu v tabulka2, budou sloupce tabulka2 obsahovat NULL.
  • Příklad:

    Předpokládejme, že máme dvě tabulky: Orders a Customers. Chceme získat seznam všech objednávek a informace o zákaznících, kteří je provedli. Pokud objednávka nemá zákazníka (například smazaného), chceme i tak vidět tuto objednávku.

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