Sobes.tech
Junior

Mis on vasakpoolne ühendus (left join) SQL-is?

sobes.tech AI

Vastus AI-lt

SQL vasak liit (LEFT JOIN või LEFT OUTER JOIN) tagastab kõik read "vasakust" tabelist ja vastavad read "paremast" tabelist. Kui paremas tabelis ei leidu vastavust, on parema tabeli veergude väärtused NULL.

  • Süntaks:

    SELECT veergude_loend
    FROM tabel1  -- Vasak tabel
    LEFT JOIN tabel2 ON tabel1.veerg = tabel2.veerg;
    
  • Tulemus:

    • Kõik read tabel1-st.
    • Vastavad read tabel2-st.
    • Ridade puhul tabel1, millele ei leidu vastavust tabel2-s, tabel2 veerud sisaldavad NULL.
  • Näide:

    Oletame, et meil on kaks tabelit: Orders ja Customers. Soovime saada kõigi tellimuste nimekirja ja teavet klientide kohta, kes need teostasid. Kui tellimusel ei ole klienti (näiteks kustutatud), soovime siiski seda näha.

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