Предположим, есть 2 таблицы TableA и TableB только с 2 столбцами (Id, Data) и следующими данными:
Таблица А:
+
| Id | Data |
+
| 1 | DataA11 |
| 1 | DataA12 |
| 1 | DataA13 |
| 2 | DataA21 |
| 3 | DataA31 |
+
ТаблицаB:
+
| Id | Data |
+
| 1 | DataB11 |
| 2 | DataB21 |
| 2 | DataB22 |
| 2 | DataB23 |
| 4 | DataB41 |
+
Внутреннее соединение по столбцу Id
вернет столбцы из обеих таблиц и только соответствующие записи:
.
| Id | Data | Id | Data |
:
| 1 | DataA11 | 1 | DataB11 |
:
| 1 | DataA12 | 1 | DataB11 |
:
| 1 | DataA13 | 1 | DataB11 |
:
| 2 | DataA21 | 2 | DataB21 |
:
| 2 | DataA21 | 2 | DataB22 |
:
| 2 | DataA21 | 2 | DataB23 |
'
Левое соединение (или левое внешнее соединение) в столбце Id
вернет столбцы из обеих таблиц и соответствующие записи с записями из левой таблицы (нулевые значения из правой таблицы):
.
| Id | Data | Id | Data |
:
| 1 | DataA11 | 1 | DataB11 |
:
| 1 | DataA12 | 1 | DataB11 |
:
| 1 | DataA13 | 1 | DataB11 |
:
| 2 | DataA21 | 2 | DataB21 |
:
| 2 | DataA21 | 2 | DataB22 |
:
| 2 | DataA21 | 2 | DataB23 |
:
| 3 | DataA31 | | |
'
Правое соединение (или правое внешнее соединение) в столбце Id
вернет столбцы из обеих таблиц и соответствующие записи с записями из правой таблицы (нулевые значения из левой таблицы):
┌────┬─────────┬────┬─────────┐
│ Id │ Data │ Id │ Data │
├────┼─────────┼────┼─────────┤
│ 1 │ DataA11 │ 1 │ DataB11 │
│ 1 │ DataA12 │ 1 │ DataB11 │
│ 1 │ DataA13 │ 1 │ DataB11 │
│ 2 │ DataA21 │ 2 │ DataB21 │
│ 2 │ DataA21 │ 2 │ DataB22 │
│ 2 │ DataA21 │ 2 │ DataB23 │
│ │ │ 4 │ DataB41 │
└────┴─────────┴────┴─────────┘
Полное внешнее объединение в столбце Id
вернет столбцы из обеих таблиц и соответствующие записи с записями из левой таблицы (нулевые значения из правой таблицы) и записи из правой таблицы (нулевые значения из левой таблицы):
╔════╦═════════╦════╦═════════╗
║ Id ║ Data ║ Id ║ Data ║
╠════╬═════════╬════╬═════════╣
║ - ║ ║ ║ ║
║ 1 ║ DataA11 ║ 1 ║ DataB11 ║
║ 1 ║ DataA12 ║ 1 ║ DataB11 ║
║ 1 ║ DataA13 ║ 1 ║ DataB11 ║
║ 2 ║ DataA21 ║ 2 ║ DataB21 ║
║ 2 ║ DataA21 ║ 2 ║ DataB22 ║
║ 2 ║ DataA21 ║ 2 ║ DataB23 ║
║ 3 ║ DataA31 ║ ║ ║
║ ║ ║ 4 ║ DataB41 ║
╚════╩═════════╩════╩═════════╝
Left Semi Join on column Id
вернет столбцы только из левой таблицы, а соответствующие записи - только из левой таблицы:
┌────┬─────────┐
│ Id │ Data │
├────┼─────────┤
│ 1 │ DataA11 │
│ 1 │ DataA12 │
│ 1 │ DataA13 │
│ 2 │ DataA21 │
└────┴─────────┘