ПРИСОЕДИНЯЙТЕСЬ против ВНУТРЕННЕГО РЕЙТИНГА и ПОЛНОГО НАРУЖНОГО

27

Я знаю , что есть разница между INNER JOINи FULL OUTER JOIN, я могу видеть это, но, в чем разница между двумя следующими: JOIN ... ON...и INNER JOIN...ON...и до сих пор еще JOIN...ON...противFULL OUTER JOIN...ON...

Причина в том, что я думаю, что, может быть, просто использование JOINиспортило запрос, над которым я работаю, который размещен на SO, ссылка на вопрос ЗДЕСЬ.

В общем, в чем заключается синтаксическая разница между действительными операциями над множествами?

Спасибо,

MCP_infiltrator
источник
1
«Кросс-постинг» - это публикация одного и того же вопроса на разных форумах. Размещение ссылки в порядке и желательно.
Чороба
Хорошо, я опубликую ссылку на вопрос, мой код возвращает много-много дубликатов, и это сводит меня с ума ... У меня даже нет утреннего кофе, но LOL
MCP_infiltrator
4
@MCP_infiltrator смотреть на возможно лучшее объяснение там: codinghorror.com/blog/2007/10/...
МКК
Если реальная проблема заключается в том, что ваш код возвращает слишком много дубликатов, вы можете задать другой вопрос, где это главное. И вы можете разместить свой код. Когда я помогал людям с повторяющимися проблемами в прошлом, это обычно происходило из-за неправильных условий соединения или иногда из-за плохого отображения между моделью данных SQL и реляционной моделью данных.
Уолтер Митти
Привет @WalterMitty, вопрос опубликован в SO, я думаю, что мои объединения - это проблема, но с другой стороны, мне также было просто любопытно, я только около 6 месяцев на написание SQL и самообучение, ссылка в вопросе.
MCP_infiltrator

Ответы:

33

JOINи INNER JOINявляются одинаковыми, ключевое слово inner является необязательным, поскольку все объединения считаются внутренними объединениями, если не указано иное. Разница между JOINи FULL OUTER JOINтакая же, как разница между INNER JOINи FULL OUTER JOIN.

Функция INNER JOINбудет возвращать совпадающие строки только в том случае, если строка в таблице A совпадает со многими строками в таблице B. Строка таблицы A будет повторяться с каждой строкой таблицы B, и наоборот.

A FULL OUTER JOINвернет все, что делает внутреннее соединение, и вернет все несопоставленные строки из каждой таблицы.

Ryathal
источник
5
Спасибо, я этого не знал JOINи INNER JOINбыли эквивалентными утверждениями.
MCP_infiltrator
7
Лучшая практика - явно писать INNER JOIN, чтобы избежать путаницы.
Нил