Gymterview
junior

Что такое JOIN?

JOIN — оператор SQL, реализующий операцию соединения реляционной алгебры. Он предназначен для объединения данных из двух или более таблиц в один результирующий набор на основе условия связи между ними.

Особенности операции соединения

  • В схему таблицы-результата входят столбцы обеих исходных таблиц (схема результата — «сцепление» схем операндов)
  • Каждая строка результата — это «сцепление» строки из одной таблицы со строкой другой таблицы, соответствующей условию
  • При соединении более двух таблиц операция JOIN применяется последовательно — результат первого соединения становится входом для следующего
Пример
SELECT
  field_name [,... n]
FROM
  Table1
  {INNER | {LEFT | RIGHT | FULL} OUTER | CROSS} JOIN
  Table2
    {ON <condition> | USING (field_name [,... n])}

Условие соединения задаётся через ON (произвольное условие) или USING (когда столбцы в обеих таблицах имеют одинаковое имя). USING убирает дублирование столбца в результате.

На собеседовании: достаточно объяснить, что JOIN объединяет строки из разных таблиц по условию. Частая ошибка — забыть, что без условия ON (или при CROSS JOIN) получается декартово произведение.