Базы данных. Вводный курс


Примеры соединений разного вида - часть 2


Как видно, в результате левого внешнего соединения сохраняются все данные первого (левого) операнда.

Результатом операции table1 RIGHT OUTER JOIN table2 ON a1=b1 AND a2<b2 (правое внешнее соединение по условию) будет следующая таблица:

JR
a1a2table1.c1table1.c2b1b2table2.c1table2.c2
11111223
11231223
11231223
NULLNULLNULLNULL1111
NULLNULLNULLNULL3323
NULLNULLNULLNULL4444
NULLNULLNULLNULL3NULLNULL5
NULLNULLNULLNULL3NULLNULL5

Как видно, в результате правого внешнего соединения сохраняются все данные второго (правого) операнда.

Результатом операции table1 FULL OUTER JOIN table2 ON a1=b1 AND a2<b2 (полное внешнее соединение по условию) будет следующая таблица:

JR
a1a2table1.c1table1.c2b1b2table2.c1table2.c2
11111223
11231223
11231223
234NULLNULLNULLNULLNULL
3NULLNULL5NULLNULLNULLNULL
NULLNULLNULLNULL1111
NULLNULLNULLNULL3323
NULLNULLNULLNULL4444
NULLNULLNULLNULL3NULLNULL5
NULLNULLNULLNULL3NULLNULL5

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

Результатом операции table1 LEFT OUTER JOIN table2 USING (c2) (левое внешнее соединение по совпадению значений указанных одноименных столбцов>) будет следующая таблица:

JR
a1a2table1.c1c2b1b2table2.c1
1111111
1123122
1123332
1123122
1123332
3NULLNULL53NULLNULL
3NULLNULL53NULLNULL
234NULLNULLNULLNULL

Результатом операции table1 RIGHT OUTER JOIN table2 USING (c2) (правое внешнее соединение по совпадению значений указанных одноименных столбцов) будет следующая таблица:

JR
a1a2table1.c1c2b1b2table2.c1
1111111
1123122
1123332
1123122
1123332
3NULLNULL53NULLNULL
3NULLNULL53NULLNULL
NULLNULLNULL4444




Начало  Назад  Вперед



Книжный магазин