Операции объединения

Операции JOIN в SQL используются для объединения строки из двух или более таблиц на основе определенного условия. Эти операции позволяют совместно использовать данные из различных таблиц, что часто является необходимым для сложных запросов.

  1. INNER JOIN:

    • Описание: Возвращает строки, имеющие соответствующие значения в обеих таблицах.

    • Пример:

      SELECT Orders.OrderID, Customers.CustomerName
      FROM Orders
      INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

      В этом примере объединяются таблицы Orders и Customers по идентификатору клиента (CustomerID), чтобы получить информацию о заказах и соответствующих клиентах.

  2. LEFT (OUTER) JOIN:

    • Описание: Возвращает все строки из левой таблицы и соответствующие строки из правой таблицы. Если нет соответствия, поля из правой таблицы будут содержать NULL.

    • Пример:

      SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
      LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

      В этом примере выбираются все клиенты и их заказы. Если у клиента нет заказов, соответствующие поля заказа будут содержать NULL.

  3. RIGHT (OUTER) JOIN:

    • Описание: Возвращает все строки из правой таблицы и соответствующие строки из левой таблицы. Если нет соответствия, поля из левой таблицы будут содержать NULL.

    • Пример:

      SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
      RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

      В этом примере выбираются все заказы и соответствующие клиенты. Если у заказа нет клиента, соответствующие поля клиента будут содержать NULL.

  4. FULL (OUTER) JOIN:

    • Описание: Возвращает все строки из обеих таблиц, соответствующие строки объединяются, а если нет соответствия, соответствующие поля содержат NULL.

    • Пример:

      SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
      FULL JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

      В этом примере выбираются все клиенты и заказы, и если нет соответствия, соответствующие поля будут содержать NULL.

  5. CROSS JOIN:

    • Описание: Возвращает декартово произведение двух таблиц, то есть каждая строка из левой таблицы соединяется со всеми строками из правой таблицы.

    • Пример:

      SELECT Customers.CustomerName, Orders.OrderID
      FROM Customers
      CROSS JOIN Orders;

      В этом примере создается комбинированный результат, где каждый клиент соединен с каждым заказом.

Last updated