ПРИЄДНУЙТЕСЯ проти ВНУТРІШНЬОГО ПРИЄДНАННЯ та ПОЛНОГО ВНУТРІШНЬОГО ПРИЄДНАННЯ


27

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

Причина в тому, що я думаю, що, можливо, просто використання JOINпсує запит, над яким я працюю, розміщений на ТАК, посилання на питання ТУТ.

Отже, в чому полягає синтаксична різниця між власне заданими операціями?

Дякую тобі,


1
"Перехресне повідомлення" - це те саме запитання на різних форумах. Опублікувати посилання нормально і бажано.
choroba

Гаразд, я опублікую посилання на запитання, мій код повертає багато багато дублікатів, і це ганяє мене ... я ще не випив свою ранкову каву,
хай

4
@MCP_infiltrator погляньте на, мабуть, найкраще пояснення там: codinghorror.com/blog/2007/10/…
mkk

Якщо справжньою проблемою є те, що ваш код повертає занадто багато дублікатів, ви можете поставити ще одне питання, де це головний момент. І ви можете опублікувати свій код. Коли я допомагав людям з дублюючими проблемами в минулому, це зазвичай відбувається через неправильні умови приєднання або іноді через погане відображення між моделлю даних SQL та реляційною моделлю даних.
Уолтер Мітті

Привіт @WalterMitty питання розміщено в ТАК, я вважаю, що мої приєднання - це проблема, але з іншого приводу я також був просто цікавий, мені лише 6 місяців займатися написанням SQL та самонавчанням, посилання в цьому питанні.
MCP_infiltrator

Відповіді:


33

JOINі INNER JOINте ж саме, внутрішнє ключове слово необов'язкове, оскільки всі з'єднання вважаються внутрішніми з'єднаннями, якщо не вказано інше. Різниця між JOINі FULL OUTER JOINє такою ж, як різниця між INNER JOINі FULL OUTER JOIN.

INNER JOINПовертатиме тільки збіглися рядки , якщо рядок в таблиці А відповідає безлічі рядків в таблиці В А рядку таблиці буде повторюватися з кожної таблицею B рядком і навпаки.

A FULL OUTER JOINповерне все, що робить внутрішнє з'єднання, і поверне всі незрівняні рядки з кожної таблиці.


5
Дякую, я цього не знав JOINі INNER JOINбули рівнозначними твердженнями.
MCP_infiltrator

7
Найкраща практика - це чітко написати INNER JOIN, щоб уникнути плутанини.
Ніл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.