Левое и правое соединение: разница и сравнение

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

Основные выводы

  1. Левое соединение включает все записи из левой таблицы и совпавшие записи из правой таблицы, заполняя значения NULL для несовпадающих строк.
  2. Правое соединение включает все записи из правой таблицы и совпавшие записи из левой таблицы, заполняя значения NULL для несовпадающих строк.
  3. Левое и правое соединения являются зеркальными отображениями друг друга и могут быть взаимозаменяемыми в зависимости от порядка таблиц в запросе.

Левое соединение против правого соединения

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

Левое соединение против правого соединения

Несмотря на то, что в правой части таблицы нет соответствия, SQL LEFT обрабатывает входящие все записи из левой таблицы. Это означает, что когда предложение ON содержит 0 (ноль) записей в правой части таблицы, объединение все равно вернет запись с NULL в каждом поле основной таблицы.

С другой стороны, правое соединение обнаруживает, что даже в левой таблице SQL RIGHT получает и отправляет все записи из правой таблицы.

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

Читайте также:  Рабочая группа и домен: разница и сравнение

Сравнительная таблица

Параметры сравненияЛевое соединениеПравое соединение
ПрименениеОн соединяет несколько таблиц и предоставляет все записи из левой таблицы, а также соответствующие строки из правой.Он объединяет несколько таблиц и доставляет все данные из правой таблицы, а также совпадающие строки из левой таблицы.
Выполнение запросаПри выполнении запроса, включающего левое соединение, сначала получаются все записи таблиц, а затем с помощью циклов с накоплением получаются совпадающие данные значений правого столбца таблицы, а значение NULL заменяется на другие несопоставленные данные.При выполнении запроса, включающего правое соединение, сначала получаются все данные правой таблицы, а затем с помощью стековых циклов собираются совпавшие записи значений столбца левой таблицы.
Набор результатовЗначение результирующего набора будет равно NULL или нулю, если в правильной таблице не будут найдены совпадающие данные.Значение результирующего набора будет равно NULL или нулю, если в левой таблице не будут найдены совпадающие данные.
Синонимичный терминЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
СинтаксисВЫБЕРИТЕ имя_столбца(ов)
ИЗ таблицы1
ЛЕВОЕ СОЕДИНЕНИЕ таблица2
ВКЛ таблица1.имя_столбца = таблица2.имя_столбца;
ВЫБОР имя_столбца (ов)
от table1
ПРАВО ПРИСОЕДИНИТЬСЯ table2
ON таблица1.имя_столбца = таблица2.имя_столбца;

Что такое левое соединение?

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

Давайте посмотрим на синтаксис левого соединения, чтобы правильно понять его полезность:

Читайте также:  Что такое код Konami: подробное руководство для геймеров

ВЫБЕРИТЕ имя_столбца(ов)

ИЗ таблицы1

ЛЕВОЕ СОЕДИНЕНИЕ таблица2

ВКЛ таблица1.имя_столбца = таблица2.имя_столбца

  1. «ВЫБРАТЬ» — начните с выбора категорий, которые мы хотим просмотреть в наборе данных.
  2. «ОТ» — введите данные таблиц, в которых мы хотим сохранить всю информацию.
  3. 'LEFT JOIN' — введите данные второй упомянутой таблицы.
  4. «ВКЛ» — используйте эту фразу, чтобы указать, какие поля будут использоваться для соединения таблиц.

Если есть несколько совпадающих находок, столбец в левой таблице дублируется, чтобы включить все данные непосредственно из правой таблицы. Если совпадений не найдено, он сохраняет строку как из левой таблицы, а затем вставляет NULL в соответствующие столбцы правой таблицы.

Что такое правое соединение?

Грубо говоря, правое соединение очень похоже на левое, только наоборот.

Правые соединения по сути очень похожи на левые соединения в том смысле, что они извлекают все строки из таблицы, указанной в фразе RIGHT JOIN, но только соответствующие строки из таблицы, указанной в предложении FROM.

ПРАВОЕ СОЕДИНЕНИЕ используется нечасто, так как содержимое ПРАВОГО СОЕДИНЕНИЯ может быть получено путем простой замены меток двух связанных таблиц в ЛЕВОМ СОЕДИНЕНИИ.

Стоит отметить, что LEFT JOIN и RIGHT JOIN также могут быть выражены как LEFT. ВНЕШНЕЕ СОЕДИНЕНИЕ а также ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.

Синтаксис для Right Join описан ниже. Операции правого и левого соединений идентичны, но в обратном порядке:

ВЫБЕРИТЕ имя_столбца(ов)
ИЗ таблицы1
ПРАВОЕ СОЕДИНЕНИЕ таблица2
ВКЛ таблица1.имя_столбца = таблица2.имя_столбца

Основные различия между левым соединением и правым соединением

  1. Левая соединительная фраза чаще используется вместо правой соединительной фразы.
  2. Формула для левого соединения — это все совпадающие записи + несовпадающие записи левой таблицы, тогда как формула для правого соединения — это все совпадающие записи + несовпадающие записи правой таблицы.
Рекомендации
  1. https://www.tutorialspoint.com/sql/sql-left-joins.htm#:~:text=The%20SQL%20LEFT%20JOIN%20returns,matches%20in%20the%20right%20table.&text=This%20means%20that%20a%20left,of%20no%20matching%20join%20predicate.
  2. https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.

Последнее обновление: 11 июня 2023 г.

точка 1
Один запрос?

Я приложил столько усилий, чтобы написать этот пост в блоге, чтобы предоставить вам ценность. Это будет очень полезно для меня, если вы подумаете о том, чтобы поделиться им в социальных сетях или со своими друзьями/родными. ДЕЛИТЬСЯ ♥️

13 мыслей о «Левом и правом соединении: разница и сравнение»

  1. Внутренние различия между правыми и левыми соединениями объясняются настолько подробно, что это значительно расширяет понимание SQL-соединений.

    Ответить
  2. Я думаю, что содержание здесь слишком специфично и не особенно полезно для тех, у кого нет обширного опыта работы с SQL.

    Ответить
  3. Тщательная сравнительная таблица действительно помогает различать два типа объединений. Эта статья действительно поучительна.

    Ответить
  4. Абсолютно важно понимать различия между левыми и правыми соединениями и в каких ситуациях их следует использовать. Эта статья умело выполняет именно это.

    Ответить

Оставьте комментарий

Хотите сохранить эту статью на потом? Нажмите на сердечко в правом нижнем углу, чтобы сохранить в свой собственный блок статей!