Какие знаешь виды JOIN-запросов

«Какие знаешь виды JOIN-запросов» — вопрос из категории SQL, который задают на 40% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В SQL существуют несколько видов JOIN-запросов, которые объединяют данные из разных таблиц:

  1. INNER JOIN — возвращает только совпадающие строки из обеих таблиц.
  2. LEFT JOIN (LEFT OUTER JOIN) — возвращает все строки из левой таблицы и совпадающие из правой. Если совпадений нет — NULL.
  3. RIGHT JOIN (RIGHT OUTER JOIN) — аналогично LEFT, но для правой таблицы.
  4. FULL JOIN (FULL OUTER JOIN) — возвращает все строки из обеих таблиц, заполняя NULL отсутствующие совпадения.
  5. CROSS JOIN — декартово произведение (все возможные комбинации строк).
  6. SELF JOIN — соединение таблицы с самой собой (используется для иерархических данных).

Пример INNER JOIN:

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