Внутреннее соединение против внешнего соединения


В SQL присоединиться используется для сравнения и объединения - буквального объединения - и возврата определенных строк данных из двух или более таблиц в базе данных. внутреннее соединение находит и возвращает совпадающие данные из таблиц, а внешнее соединение находит и возвращает совпадающие данные и некоторые разнородные данные из таблиц.

сообщить об этом объявлении

Внутреннее соединение

Внутреннее соединение фокусируется на общности между двумя таблицами. При использовании внутреннего соединения должны быть хотя бы некоторые совпадающие данные между двумя (или более) сравниваемыми таблицами. Внутреннее объединение ищет в таблицах совпадающие или перекрывающиеся данные. Найдя его, внутреннее объединение объединяет и возвращает информацию в одну новую таблицу..

Пример внутреннего соединения

Давайте рассмотрим общий сценарий двух таблиц: цены на продукт и количество. Общей информацией в этих двух таблицах является название продукта, поэтому это логический столбец для объединения таблиц на. Есть несколько продуктов, которые распространены в двух таблицах; другие уникальны для одной из таблиц и не имеют совпадений в другой таблице.

Внутреннее соединение на Товары возвращает информацию только о тех продуктах, которые распространены в обеих таблицах.

Внешнее соединение

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

Существует три типа внешних соединений:

  • Левое внешнее соединение (или левое соединение)
  • Правое внешнее соединение (или правое соединение)
  • Полное внешнее соединение (или полное соединение)

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

Левое внешнее соединение

При левом внешнем соединении будут возвращены все данные в таблице 1 и все общие данные (так, внутренняя часть примера диаграммы Венна), но только соответствующие данные из таблицы 2, которые являются правым соединением..

Пример левого соединения

В нашей базе данных с примерами слева есть два продукта - апельсины и помидоры (Цены таблица), которые не имеют соответствующей записи справа (таблица количеств). В левом соединении эти строки включаются в набор результатов со значением NULL в столбце Количество. Другие строки в результате совпадают с внутренним соединением.

Правое внешнее соединение

Правое внешнее соединение возвращает данные таблицы 2 и все общие данные, но только соответствующие данные из таблицы 1, которые являются левым соединением.

Пример правого соединения

Как и в примере с левым соединением, вывод правого внешнего соединения включает все строки внутреннего соединения и две строки - брокколи и сквош - справа. (Количества таблица), которые не имеют соответствующих записей слева.

Полное внешнее соединение

Полное внешнее соединение или полное соединение, которое не поддерживается популярной системой управления базами данных MySQL, объединяет и возвращает все данные из двух или более таблиц, независимо от того, есть ли общая информация. Полное объединение - это просто дублирование всей указанной информации, но в одной таблице, а не в нескольких таблицах. Если совпадающие данные отсутствуют, будут получены нулевые значения.

Это только основы, но с помощью соединений можно многое сделать. Есть даже объединения, которые могут исключать другие объединения!

Видео, объясняющее внутренние и внешние соединения

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

Ссылки

  • Разница между внутренним и внешним соединением - Переполнение стека
  • SQL Inner Join - Quackit
  • Внешнее соединение SQL - Quackit
  • Использование внутренних соединений - Microsoft SQL Server
  • Использование внешних объединений - Microsoft SQL Server
  • Визуальное представление соединений SQL - CodeProject
  • Википедия: Регистрация (SQL)