Простыми словами статья Google объясняет это как размер = размер передачи и контент = фактический размер
Это моя формула, основанная на чтении различных статей по этой теме (и я чтобы увеличить его с вашими комментариями) Size = Compression (Content) + Заголовок ответа
Принятие, к которому Вы присоединяетесь на столбцах без дубликатов, который является очень общим падежом:
внутреннее объединение A и B дает результат A, пересекают B, т.е. внутреннюю часть пересечение схемы Венна.
внешнее объединение A и B дает результаты объединения B, т.е. внешние части объединения схемы Венна.
Примеры
предположим у Вас есть две таблицы с отдельным столбцом каждый и данные следующим образом:
A B
- -
1 3
2 4
3 5
4 6
Примечание, которые (1,2) уникальны для A, (3,4), распространено, и (5,6) уникальны для B.
Внутреннее объединение
внутреннее объединение с помощью любого из эквивалентных запросов дает пересечение этих двух таблиц, т.е. этих двух строк, которые они имеют общего.
select * from a INNER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a = b.b;
a | b
--+--
3 | 3
4 | 4
Левое внешнее объединение
А уехал, внешнее объединение даст все строки в A плюс любые общие строки в B.
select * from a LEFT OUTER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a = b.b(+);
a | b
--+-----
1 | null
2 | null
3 | 3
4 | 4
Правильное внешнее объединение
внешнее объединение права А даст все строки в B плюс любые общие строки в A.
select * from a RIGHT OUTER JOIN b on a.a = b.b;
select a.*, b.* from a,b where a.a(+) = b.b;
a | b
-----+----
3 | 3
4 | 4
null | 5
null | 6
Полное внешнее объединение
А полное внешнее объединение даст Вам объединение A и B, т.е. всех строк в A и всех строк в B. Если что-то в A не имеет соответствующей данной величины в B, то часть B является пустой, и наоборот.
select * from a FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5
Внутренние объединения требуют, чтобы запись со связанным идентификатором существовала в объединяемой таблице.
Внешние объединения возвратят записи для левой стороны, даже если ничто не будет существовать для правой стороны.
, Например, у Вас есть Заказы и таблица OrderDetails. Они связаны "OrderID".
Заказы
OrderDetails
запрос
SELECT Orders.OrderID, Orders.CustomerName
FROM Orders
INNER JOIN OrderDetails
ON Orders.OrderID = OrderDetails.OrderID
только возвратит Заказы, которые также имеют что-то в таблице OrderDetails.
при изменении его на OUTER, ПОКИНУТУЮ СОЕДИНЕНИЕ
SELECT Orders.OrderID, Orders.CustomerName
FROM Orders
LEFT JOIN OrderDetails
ON Orders.OrderID = OrderDetails.OrderID
затем, это возвратит записи из таблицы Orders, даже если у них не будет записей OrderDetails.
можно использовать это для нахождения Заказов, которые не имеют никакого OrderDetails, указывающего на возможный осиротевший порядок путем добавления где пункт как WHERE OrderDetails.OrderID IS NULL
.
Внутреннее объединение только показывает строки, если существует запись соответствия на другом (справа) сторона соединения.
А (слева) внешнее объединение показывает строки для каждой записи на левой стороне, даже при отсутствии строк соответствия на другом (справа) стороны соединения. Если бы нет никакой строки соответствия, столбцы для другого (справа) примыкают, показал бы, АННУЛИРУЕТ.