Sobes.tech
Junior

Какво е лево свързване (left join) в SQL?

sobes.tech AI

Отговор от AI

Ляво съединение (LEFT JOIN или LEFT OUTER JOIN) в SQL връща всички редове от "лявата" таблица и съответните редове от "дясната" таблица. Ако не бъде намерено съвпадение в дясната таблица, стойностите на колоните от дясната таблица ще бъдат NULL.

  • Синтаксис:

    SELECT списък_на_колони
    FROM таблица1  -- Лява таблица
    LEFT JOIN таблица2 ON таблица1.колона = таблица2.колона;
    
  • Резултат:

    • Всички редове от таблица1.
    • Съответните редове от таблица2.
    • За редове от таблица1, които нямат съвпадение в таблица2, колоните на таблица2 ще съдържат NULL.
  • Пример:

    Да предположим, че имаме две таблици: Orders и Customers. Искаме да получим списък с всички поръчки и информация за клиентите, които са ги направили. Ако поръчката няма клиент (например, изтрит), все пак искаме да видим тази поръчка.

    -- Таблица Orders
    -- OrderID | CustomerID | OrderDate
    -- 1       | 101        | 2023-10-26
    -- 2       | 102        | 2023-10-26
    -- 3       | NULL       | 2023-10-27
    
    -- Таблица 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