Sobes.tech
Junior

Kas ir kreisējā savienojuma (left join) SQL?

sobes.tech AI

Atbilde no AI

SQL LEFT JOIN vai LEFT OUTER JOIN atgriež visus "kreisās" tabulas datus un atbilstošos "labās" tabulas datus. Ja labajā tabulā nav atrasta atbilstība, labās tabulas kolonnu vērtības būs NULL.

  • Sintakse:

    SELECT kolonnu_saraksts
    FROM tabula1  -- Kreisā tabula
    LEFT JOIN tabula2 ON tabula1.kolonna = tabula2.kolonna;
    
  • Rezultāts:

    • Visas rindas no tabula1.
    • Atbilstošās rindas no tabula2.
    • Rindām no tabula1, kur nav atbilstības tabula2, tabula2 kolonnas būs NULL.
  • Piemērs:

    Pieņemsim, ka mums ir divas tabulas: Orders un Customers. Mēs vēlamies iegūt visu pasūtījumu sarakstu un informāciju par klientiem, kuri tos veica. Ja pasūtījumam nav klienta (piemēram, dzēsts), mēs joprojām vēlamies redzēt šo pasūtījumu:

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