Join¶
Join - это оператор, который позволяет соединять несколько таблиц в соответствии с правилами соединения. Примеры ниже работают для PostgreSQL.
Типы соединений¶
Inner Join¶
Это самый простой и распространненный тип соединения. Он возвращает все строки из нескольких траблиц, где выполняется пересечение по критерию.
Например, если в одной таблице будут перечислены рыжие животные, а в другой коты (не забываем что мы связываем их по цветому признаку), то такой тип пересечения вернет только рыжих котов. Остальные значения в результирующий набор не попадут.
Outer Join¶
Если внутренее соединение возвращает только пересечения, то такой тип соединения возвращает пересечение и отдельные элементы, которые принадлежат к какому-то типу множества.
Left Outer Join¶
Такое соединение возвращает пересечение множеств и все элементы из левой таблицы. Значения которые не пересекаются заполняются null.
Right Outer Join¶
Такое соединение возвращает пересечение множеств и все элементы из правой таблицы. Значения которые не пересекаются заполняются null.
Full Join¶
Возвращает обе таблицы, объединенные в одну.
Cross Join¶
Возвращает декартово произведение - собираются все возможные пары из обеих таблиц.
Self Join¶
Это соединение внутри своей же таблицы. Используется тогда, когда у разных полей одной и той же таблицы могут быть одинаковые значения.