2016-03-06 4 views
2

Это действительно основной вопрос, но является полусоединением так же, как левое или правое соединение?Является ли полусоединение рассмотренным слева или справа?

То есть: когда кто-то говорит

Позволяет показать всем пользователям по стране. Нам нужно сделать полусоединение, потому что в некоторых странах нет пользователей

Он ссылается только на то, чтобы сделать либо левое, либо правое соединение?

+0

Я думаю, что они ссылаются на внешнее соединение –

ответ

6

Полусоединение представляет собой набор кортежей в одной таблице, которые соответствуют клавишам соединения второго. В отличие от внутреннего и внешнего объединений, полусоединение не может умножить количество строк в таблице: кортеж включен или не включен.

По определению, когда таблица с сопоставленными кортежами является первой таблицей, то она называется левым полусоединением. Если бы это было второе, тогда это было бы правильное полусоединение. Это использование в точности аналогично левому и правому внешнему соединениям. Но с той разницей, что строки (кортежи) фильтруются для полусоединения, но не для внешнего соединения. Хорошая иллюстрация имеет статья Wikipedia о реляционной алгебре.

Лично я не нашел описание на основе описания особенно полезным. Левое полусоединение эквивалентно запросу in в SQL:

select t.* 
from t 
where t.key in (select u.key from u); 
Смежные вопросы