Какие основные типы операций JOIN существуют в SQL?

«Какие основные типы операций JOIN существуют в SQL?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В стандартном SQL определены следующие основные типы JOIN:

Тип JOIN Описание
INNER JOIN Возвращает только строки, где есть совпадение в обеих таблицах.
LEFT (OUTER) JOIN Возвращает все строки из левой таблицы и совпадающие строки из правой. Если совпадения нет, поля правой таблицы будут NULL.
RIGHT (OUTER) JOIN Возвращает все строки из правой таблицы и совпадающие строки из левой. Если совпадения нет, поля левой таблицы будут NULL.
FULL (OUTER) JOIN Возвращает строки при наличии совпадения в любой из таблиц. Это комбинация LEFT и RIGHT JOIN.
CROSS JOIN Возвращает декартово произведение строк обеих таблиц (каждую строку из таблицы A с каждой строкой из таблицы B).

Дополнительные варианты:

  • SELF JOIN — соединение таблицы с самой собой (используется псевдонимы).
  • NATURAL JOIN — неявное соединение по столбцам с одинаковыми именами (использовать не рекомендуется из-за непредсказуемости).

Пример INNER JOIN:

SELECT o.id AS order_id, c.name AS customer_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id;

Почему важно понимать различия? Выбор правильного типа JOIN напрямую влияет на корректность и полноту возвращаемых данных.