Перейти к содержанию

Join

Join - это оператор, который позволяет соединять несколько таблиц в соответствии с правилами соединения. Примеры ниже работают для PostgreSQL.

Типы соединений

Inner Join

Это самый простой и распространненный тип соединения. Он возвращает все строки из нескольких траблиц, где выполняется пересечение по критерию.

Например, если в одной таблице будут перечислены рыжие животные, а в другой коты (не забываем что мы связываем их по цветому признаку), то такой тип пересечения вернет только рыжих котов. Остальные значения в результирующий набор не попадут.

Outer Join

Если внутренее соединение возвращает только пересечения, то такой тип соединения возвращает пересечение и отдельные элементы, которые принадлежат к какому-то типу множества.

Left Outer Join

Такое соединение возвращает пересечение множеств и все элементы из левой таблицы. Значения которые не пересекаются заполняются null.

Right Outer Join

Такое соединение возвращает пересечение множеств и все элементы из правой таблицы. Значения которые не пересекаются заполняются null.

Full Join

Возвращает обе таблицы, объединенные в одну.

Cross Join

Возвращает декартово произведение - собираются все возможные пары из обеих таблиц.

Self Join

Это соединение внутри своей же таблицы. Используется тогда, когда у разных полей одной и той же таблицы могут быть одинаковые значения.