Почему внутреннее соединение и внешнее соединение так называются?

Я понимаю, работу внутренних и внешних соединений. Но каково значение слов внутренний / внешний в этом контексте? Что такого внутреннего во внутреннем соединении? Что такое внешнее о внешнем соединении?

С Наилучшими Пожеланиями, Вишал!--1-->

2 ответов


еще одна перспектива:

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

  1. для внутреннего соединения внешний цикл будет повторяться над любым отношением, а внутренний цикл будет повторяться над другим отношением и создавать составные строки всякий раз, когда столбцы соединения совпадают. Таким образом, выходные строки создаются и заполняются во внутреннем цикле. Поэтому это называется внутренним соединением.

  2. когда мы хотим, чтобы все строки в левую сторону relation\table чтобы сохранить, внешний цикл должен будет повторяться в левой таблице, и строки будут добавлены не только во внутренний цикл для совпадающих случаев, но и во внешний цикл для несоответствующих случаев(где левая таблица не имеет совпадающей строки в правой таблице на основе столбцов соединения). В этом случае левая таблица должна перейти во внешний цикл, поэтому она называется левым внешним соединением.

  3. когда мы хотим, чтобы все строки в правой части relation\table были сохранены, правая таблица будет нужно зайти во внешний цикл, поэтому он называется RIGHT OUTER JOIN.

  4. когда мы хотим, чтобы не совпадающие строки обеих таблиц были сохранены, в простейшем подходе у нас было бы два вложенных цикла. Один вложенный цикл будет иметь левую таблицу во внешнем цикле, а другой вложенный цикл будет иметь правую таблицу во внешнем цикле. Таким образом, обе таблицы переходят во внешний цикл, поэтому он называется полным внешним соединением.

добавление ссылки на документ, в котором говорится о вложенном цикле реализация:http://www.cs.berkeley.edu / ~brewer / cs262 / 3-selinger79.pdf


внутреннее соединение вернет только записи, где ключи соединения существуют во всех Соединенных таблицах, или, другими словами, он вернет записи с ключами, которые попадают в пересечение Соединенных таблиц. Ключи на что intesection. Внешнее соединение возвращает все записи в пересечении, а также записи за пределами перекресток.

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

и еще: в чем разница между "внутренним соединением" и "внешним соединением"?

на самом деле, я полагаю, что ваш вопрос является дубликатом. ;-)