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

Какие виды JOIN знаете? Какие записи будут в результате того или иного JOIN для двух таблиц?

Компании, где спрашивали
Effective Technologies

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

sobes.tech AI

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

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

Пример для двух таблиц A и B:

A.id A.val B.id B.val
1 a 1 x
2 b NULL NULL
  • INNER JOIN вернёт только строки с id=1.
  • LEFT JOIN вернёт обе строки из A, для id=2 поля B будут NULL.
  • RIGHT JOIN вернёт строки из B, если есть, и NULL для A, если нет совпадений.
  • FULL JOIN вернёт все строки из A и B, заполняя NULL там, где нет совпадений.
  • CROSS JOIN вернёт все возможные пары строк из A и B.