Пример внешнего соединения SQL | Левое, правое и полное внешнее соединение

SQL Outer JOIN возвращает все содержимое обеих таблиц, совмещенных или нет. Во внешнем соединении могут быть возвращены несовпадающие строки в одной или обеих таблицах. SQL OUTER JOIN возвращает все строки из обеих участвующих таблиц, которые удовлетворяют условию соединения, а также строки, не соответствующие критериям соединения.

Если вы новичок в этом блоге по SQL, то я ранее описывал перекрестное соединение, внутреннее соединение и левое соединение. Во внешнем SQL JOIN все содержимое обеих таблиц объединяется независимо от того, совпадают они или нет.

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

Какая польза от SQL OUTER JOIN

В SQL Outer Join все содержимое обеих таблиц объединяется независимо от того, совпадают они или нет.

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

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

Оператор SQL OUTER JOIN (+) используется только с одной стороны условия соединения.

Типы внешнего соединения

  1. ЛЕВОЕ СОЕДИНЕНИЕ возвращает только несовпадающие строки из левой таблицы.
  2. RIGHT JOIN возвращает только несовпадающие строки из правой таблицы.
  3. FULL OUTER JOIN возвращает несопоставленные строки из обеих таблиц.

Рассмотрим следующую таблицу

См. следующие таблицы.

ЗАКАЗЧИК:
ID НАЗВАНИЕ ВОЗРАСТ ГОРОД
1 Рохит 20 Патна
2 Шивам 18 Джаландхар
3 Пранав 19 Дхарамшала
ЗАКАЗЫ:
O_ID Cust_ID Город СУММА
201 1 Патна 3000
202 2 Джаландхар 4000
203 4 Калькутта 1000

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

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

SYNTAX

 Select column_1, column_2  … Из table_1 LEFT JOIN table_2 ON CONDITION; 

См. Следующую схему правого внешнего соединения.

Давайте проясним это на примере. См. следующий запрос.

 Выберите Orders.O_ID, Customer.id, customer.name, Orders.amount From  КЛИЕНТ ЛЕВЫЙ ПРИСОЕДИНЯЕТСЯ к заказам НА Customer.ID = Orders.Cust_ID; 

См. Вывод.

ОБЪЯСНЕНИЕ

Как видите, отображается все содержимое левой таблицы, независимо от того, совпадает ли она с правой таблицей или нет. Содержимое правой таблицы, которое совпадает с левой таблицей, также отображается и которое не совпадает, отображается со значениями NULL.

Right Внешнее Join

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

 Выбрать столбец_1, столбец_2… из таблицы_1 ПРАВО СОЕДИНЯТЬ таблицу_2 ВКЛ  СОСТОЯНИЕ; 

См. Следующую диаграмму Right Out er Присоединяйтесь.

Давайте посмотрим на следующий пример кода.

 Выбрать Orders.O_ID, Customer.id, customer.name, Orders.amount из CUSTOMER RIGHT JOIN Orders ON Customer.ID = Orders.Cust_ID; 

См. вывод .

ОБЪЯСНЕНИЕ

Как видите, отображается все содержимое правой таблицы, независимо от того, совпадает ли она с левой таблицей или нет. Содержимое левой таблицы, которое совпадает с правой таблицей, также отображается и которое не совпадает, отображается со значениями NULL.

FULL OUTER JOIN

Полное внешнее соединение SQL возвращает все строки в левой таблице, правой таблице и соответствующие строки в обеих таблицах.

SYNTAX

 Select * from table1 ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ table2 ON CONDITION; 

См. следующую схему полного внешнего соединения.

См. следующий пример.

 Выберите * из Customer FULL OUTER JOIN Orders ON Customer.ID  = Orders.cust_id; 

Вышеупомянутый оператор не будет работать в MySQL, поскольку полное внешнее соединение SQL возвращает набор результатов, который объединяет результаты как левого соединения SQL, так и правого соединения SQL.

Итак, чтобы сгенерировать результат, мы должны использовать оператор UNION.

Теперь посмотрим на следующий оператор.

 Select *  от клиента LEFT JOIN Orders ON Customer.id = Orders.Cust_ID UNION Выберите * из Customer RIGHT JOIN Orders ON Customer.id = Orders.Cust_id; 

См. следующий вывод.

Пояснение

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

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ возвращает все совпадающие записи из обеих таблиц, независимо от того, таблица совпадает или нет.

Итак, если есть строки в таблице «Клиенты», которые не совпадают в таблице « Orders », или если есть строки в таблице « Заказы », для которых нет совпадений в таблице« Customers », эти строки также будут в выводе.

Наконец , Учебное пособие по использованию внешнего соединения SQL окончено.

Оцените статью
nanomode.ru
Добавить комментарий