Відмінності між лівим і правим з'єднанням

Лівий проти правої приєднання

У роботі з SQL, join - це загальне ім'я, яке з'являться раз у раз. Застереження приєднання допомагає поєднувати записи з різних таблиць у наборі даних. По суті, об'єднання створює таблицю, яку можна використовувати як є, так і розгортати з іншими. Тому доцільно розібратися в цих приєднаннях та відмінностях між ними, щоб знати конкретний приєднання, а також, чи слід приймати правий чи лівий у спеціальних випадках.

Щоб краще зрозуміти приєднання та їх відмінності, важливо зрозуміти види доступних приєднань. Зазвичай існує три типи приєднань. Ці з'єднання включають внутрішнє з'єднання, хрестоподібне з'єднання та зовнішнє з'єднання. Внутрішнє з'єднання зазвичай порівнює таблиці і дає результат або повертає результат лише в тому випадку, якщо буде знайдено збіг. Основна функція внутрішнього з'єднання - зменшити розмір наборів результатів.

Cross з'єднання з іншого боку порівнюють дві таблиці і дають повернення кожної можливої ​​комбінації, що виходить із рядків обох таблиць. Від цього приєднання очікуються численні результати, і більшість з них може навіть не мати сенсу. Тому користуватися цим з'єднанням слід обережно.

Зовнішнє з'єднання проводить порівняння таблиць і повертає дані, коли є відповідність. Так само, як це спостерігається у внутрішньому з'єднанні, зовнішнє з'єднання дублює рядки в заданій таблиці у випадку, якщо видно відповідні записи. Результати зовнішніх з'єднань зазвичай більші, і тому набори даних є великими, оскільки сам набір не вилучається із набору.

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

Таким чином, ліве зовнішнє з'єднання зберігає всі рядки, що знаходяться в таблиці "ліворуч", незалежно від того, чи є рядок, відповідний йому в таблиці "праворуч". Отже, ліва таблиця посилається на таблицю, яка поступає першою у спільному викладі. Він повинен з’являтися зліва від ключового слова "приєднатися", що виникає на столі. Коли виконано ліве зовнішнє з'єднання, усі рядки зліва повинні бути повернуті. Невідповідні стовпці таблиці заповнюватимуться NULL кожного разу, коли немає відповідності.

Важливо зазначити, що при роботі з цими двома з'єднаннями всі рядки зліва від таблиці відображаються в таблиці лівим зовнішнім з'єднанням. Результати відображаються незалежно від того, чи є відповідні стовпці у правій таблиці. У правому зовнішньому з’єднанні відображаються всі рядки праворуч, і це незалежно від того, чи є відповідні стовпці в лівій частині таблиці.

Вибір того, чи потрібно йти на ліве зовнішнє з'єднання чи право зовнішнє з'єднання, не має значення, оскільки показані однакові результати. Функціональність, яку представляє праве зовнішнє з'єднання, - це та сама функція, яку представляє ліва зовнішня з'єднання. Просто перемикаючи порядок, у якому таблиці відображаються в операторі SQL, ви можете очікувати подібних результатів, незалежно від використовуваного з'єднання.

Підсумок

Приєднання відбувається в трьох основних групах - внутрішнє з'єднання, перехресне з'єднання та зовнішнє з'єднання

У лівому зовнішньому з'єднанні відображаються всі рядки зліва від таблиці

Праве з'єднання відображає всі рядки праворуч таблиці

Чергування послідовності SQL може виключити використання як правого, так і лівого зовнішнього з'єднання, а замість цього використовувати лише одне.