Соединение создает таблицу, которую можно использовать отдельно или в сочетании друг с другом. Таким образом, рекомендуется понимать эти соединения и различия между ними, чтобы определить конкретное соединение, а также то, следует ли выбирать правое или левое в уникальных случаях.
Основные выводы
- Левое соединение включает все записи из левой таблицы и совпавшие записи из правой таблицы, заполняя значения NULL для несовпадающих строк.
- Правое соединение включает все записи из правой таблицы и совпавшие записи из левой таблицы, заполняя значения NULL для несовпадающих строк.
- Левое и правое соединения являются зеркальными отображениями друг друга и могут быть взаимозаменяемыми в зависимости от порядка таблиц в запросе.
Левое соединение против правого соединения
Левое соединение возвращает все строки из левой таблицы и совпадающие строки из правой таблицы, и если в правой таблице нет совпадений, результат будет содержать нулевые значения. Правое соединение, то же самое с левым соединением, но оно возвращает все строки из правой таблицы и совпадающие строки из левой таблицы.
Несмотря на то, что в правой части таблицы нет соответствия, SQL LEFT обрабатывает входящие все записи из левой таблицы. Это означает, что когда предложение ON содержит 0 (ноль) записей в правой части таблицы, объединение все равно вернет запись с NULL в каждом поле основной таблицы.
С другой стороны, правое соединение обнаруживает, что даже в левой таблице SQL RIGHT получает и отправляет все записи из правой таблицы.
Это означает, что правильное соединение доставляет все данные из правильной таблицы, а также любые допустимые значения из таблиц или NULL, если для этой операции не существует подходящего предиката соединения.
Сравнительная таблица
Параметры сравнения | Левое соединение | Правое соединение |
---|---|---|
Применение | Он соединяет несколько таблиц и предоставляет все записи из левой таблицы, а также соответствующие строки из правой. | Он объединяет несколько таблиц и доставляет все данные из правой таблицы, а также совпадающие строки из левой таблицы. |
Выполнение запроса | При выполнении запроса, включающего левое соединение, сначала получаются все записи таблиц, а затем с помощью циклов с накоплением получаются совпадающие данные значений правого столбца таблицы, а значение NULL заменяется на другие несопоставленные данные. | При выполнении запроса, включающего правое соединение, сначала получаются все данные правой таблицы, а затем с помощью стековых циклов собираются совпавшие записи значений столбца левой таблицы. |
Набор результатов | Значение результирующего набора будет равно NULL или нулю, если в правильной таблице не будут найдены совпадающие данные. | Значение результирующего набора будет равно NULL или нулю, если в левой таблице не будут найдены совпадающие данные. |
Синонимичный термин | ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ | ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ |
Синтаксис | ВЫБЕРИТЕ имя_столбца(ов) ИЗ таблицы1 ЛЕВОЕ СОЕДИНЕНИЕ таблица2 ВКЛ таблица1.имя_столбца = таблица2.имя_столбца; | ВЫБОР имя_столбца (ов) от table1 ПРАВО ПРИСОЕДИНИТЬСЯ table2 ON таблица1.имя_столбца = таблица2.имя_столбца; |
Что такое левое соединение?
Чтобы объединить данные из двух баз данных в зависимости от столбца, содержащего совпадающие значения, мы используем JOIN в SQL. Например, если у вас есть таблица, содержащая данные клиента (идентификатор клиента, первый фамилия, идентификатор и т. д.), а затем еще одна таблица, содержащая данные заказа за определенное время (идентификатор транзакции, время, идентификатор клиента, идентификатор продукта и т. д.)
Давайте посмотрим на синтаксис левого соединения, чтобы правильно понять его полезность:
ВЫБЕРИТЕ имя_столбца(ов)
ИЗ таблицы1
ЛЕВОЕ СОЕДИНЕНИЕ таблица2
ВКЛ таблица1.имя_столбца = таблица2.имя_столбца
- «ВЫБРАТЬ» — начните с выбора категорий, которые мы хотим просмотреть в наборе данных.
- «ОТ» — введите данные таблиц, в которых мы хотим сохранить всю информацию.
- 'LEFT JOIN' — введите данные второй упомянутой таблицы.
- «ВКЛ» — используйте эту фразу, чтобы указать, какие поля будут использоваться для соединения таблиц.
Если есть несколько совпадающих находок, столбец в левой таблице дублируется, чтобы включить все данные непосредственно из правой таблицы. Если совпадений не найдено, он сохраняет строку как из левой таблицы, а затем вставляет NULL в соответствующие столбцы правой таблицы.
Что такое правое соединение?
Грубо говоря, правое соединение очень похоже на левое, только наоборот.
Правые соединения по сути очень похожи на левые соединения в том смысле, что они извлекают все строки из таблицы, указанной в фразе RIGHT JOIN, но только соответствующие строки из таблицы, указанной в предложении FROM.
ПРАВОЕ СОЕДИНЕНИЕ используется нечасто, так как содержимое ПРАВОГО СОЕДИНЕНИЯ может быть получено путем простой замены меток двух связанных таблиц в ЛЕВОМ СОЕДИНЕНИИ.
Стоит отметить, что LEFT JOIN и RIGHT JOIN также могут быть выражены как LEFT. ВНЕШНЕЕ СОЕДИНЕНИЕ а также ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ.
Синтаксис для Right Join описан ниже. Операции правого и левого соединений идентичны, но в обратном порядке:
ВЫБЕРИТЕ имя_столбца(ов)
ИЗ таблицы1
ПРАВОЕ СОЕДИНЕНИЕ таблица2
ВКЛ таблица1.имя_столбца = таблица2.имя_столбца
Основные различия между левым соединением и правым соединением
- Левая соединительная фраза чаще используется вместо правой соединительной фразы.
- Формула для левого соединения — это все совпадающие записи + несовпадающие записи левой таблицы, тогда как формула для правого соединения — это все совпадающие записи + несовпадающие записи правой таблицы.
- 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.
- https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.
Последнее обновление: 11 июня 2023 г.
Сандип Бхандари имеет степень бакалавра вычислительной техники Университета Тапар (2006 г.). Имеет 20-летний опыт работы в сфере технологий. Он проявляет большой интерес к различным техническим областям, включая системы баз данных, компьютерные сети и программирование. Подробнее о нем можно прочитать на его био страница.
Я не верю, что SQL RIGHT JOIN используется так редко, как предполагалось, он находит свое применение в более сложных запросах.
Я понимаю вашу точку зрения, но SQL RIGHT JOIN действительно на практике встречается реже.
Внутренние различия между правыми и левыми соединениями объясняются настолько подробно, что это значительно расширяет понимание SQL-соединений.
Безусловно, в этой статье невероятно подробный и глубокий анализ.
Я думаю, что содержание здесь слишком специфично и не особенно полезно для тех, у кого нет обширного опыта работы с SQL.
Это правда, что содержание этой статьи может больше подойти тем, кто имеет более глубокое понимание SQL.
Хотя информация здесь интересна, тон статьи иногда может показаться несколько частноправовым.
Это действительно верное наблюдение.
Тщательная сравнительная таблица действительно помогает различать два типа объединений. Эта статья действительно поучительна.
Конечно, эта статья действительно выделяется.
Я не мог с этим согласиться.
Абсолютно важно понимать различия между левыми и правыми соединениями и в каких ситуациях их следует использовать. Эта статья умело выполняет именно это.
Абсолютно! Тщательная точность заслуживает похвалы.