Концептуальный вопрос: всегда ли оставленное соединение с ненулевым фильтром на ключе соединения всегда равно внутреннему соединению? - PullRequest
0 голосов
/ 19 марта 2020

Это концептуальный вопрос. Так что у меня нет никакого реального кода. Но это просто.

Позвольте нам остаться, у нас есть две таблицы (Join_1 и Join_2) от объединения A и B:

Join_1:

Select *
From A join B on A.id = B.id

Join_2

Select *
From A left join B on A.id = B.id
where B.id is not null

Вопрос: всегда ли Join_1 равен Join_2? Вы можете думать о любых условиях, таких как нулевые значения, дубликаты и т. Д.

1 Ответ

2 голосов
/ 19 марта 2020

Для практических целей "да".

Единственное исключение будет, если a.id может быть NULL. В этом случае первая версия будет отфильтровывать эти строки. Второй будет включать их.

...