Назад к вопросам
Junior
81
questionbank

Что такое левое соединение (left join) в SQL?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Левое соединение (LEFT JOIN или LEFT OUTER JOIN) в SQL возвращает все строки из "левой" таблицы и соответствующие строки из "правой" таблицы. Если соответствия в правой таблице не найдено, для столбцов правой таблицы будут возвращены значения NULL.

  • Синтаксис:

    SELECT column_list
    FROM table1  -- Левая таблица
    LEFT JOIN table2 ON table1.column = table2.column;
    
  • Результат:

    • Все строки из table1.
    • Соответствующие строки из table2.
    • Для строк из table1, у которых нет соответствия в table2, столбцы table2 будут содержать 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