Sobes.tech
Back to questions
Junior — Middle
80

Можешь объяснить разные типы соединений в SQL и их особенности?

Companies where asked
РостелекомРостелеком
IBS

Answer from AI

sobes.tech AI

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

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

Пример INNER JOIN:

SELECT employees.name, departments.name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

Этот запрос вернёт имена сотрудников и их отделов, только если у сотрудника есть соответствующий отдел.