Sobes.tech
Назад к вопросам
Middle
12

Что такое JOIN? Какие виды JOIN существуют и в чём их отличия?

Компании, где спрашивали
ГК ИннотехГК Иннотех

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

sobes.tech AI

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

Основные виды JOIN:

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

Отличия в том, какие строки включаются в результат при отсутствии совпадений:

  • INNER JOIN исключает их.
  • LEFT/RIGHT JOIN включают все из одной таблицы и совпадающие из другой.
  • FULL JOIN включает все из обеих.

Пример INNER JOIN:

SELECT users.name, orders.id
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Этот запрос вернёт пользователей, у которых есть заказы.