Запросы могут выполняться над отношениями, соединёнными с помощью оператора JOIN. Различают следующие типы соединений:
- декартово произведение CROSS JOIN — отн1 cross join отн2,
- соединение по условию JOIN ON — отн1 join on отн2 <условие>
Например,
select atr2,art10 From отн1 join отн2 on atr2 = atr10 where atr1>10,
где atr1 и atr2 – атрибуты отношения ОТН1, atr10 – атрибут отношения отн2
- Естественное соединение NATURAL JOIN (в Transact SQL, используемом MS SQL SERVER, INNER JOIN). — отн1 natural join отн2
При естественном соединении кортежам исходного отношения соединяются по условию равенства одноимённых атрибутов. В результирующие отношение попадает только один атрибут.
- Внешнее соединение OUTER JOIN. — отн1 natural full OUTER join отн2
Внешнее соединение отличается от естественного соединения тем, что в естественное соединение включают и те кортежи, для которых не находится пары. При этом отсутствующие атрибуты принимают значение NULL.
Существуют разновидности внешнего соединения:
Полное внешние соединение full OUTER JOIN (см. выше)
Левое внешние соединение LEFT OUTER JOIN
Правое внешние соединение RIGHT OUTER JOIN
В левое внешние соединение попадают кортежи, определяемые левым отношением. Отсутствующие кортежи правого отношения дополняются значениями NULL. В правое – наоборот.Общий формат соединенных отношений может выглядеть следующим образом
[NATURAL|{{LEFT|RIGHT|FULL}[OUTER]}] JOIN on <условие соединения>