SQL Outer JOIN возвращает все содержимое обеих таблиц, совмещенных или нет. Во внешнем соединении могут быть возвращены несовпадающие строки в одной или обеих таблицах. SQL OUTER JOIN возвращает все строки из обеих участвующих таблиц, которые удовлетворяют условию соединения, а также строки, не соответствующие критериям соединения.
Если вы новичок в этом блоге по SQL, то я ранее описывал перекрестное соединение, внутреннее соединение и левое соединение. Во внешнем SQL JOIN все содержимое обеих таблиц объединяется независимо от того, совпадают они или нет.
При выполнении внутреннего соединения строки из любой таблицы, не совпадающие в другой таблице, не возвращаются в окончательном наборе результатов. Во внешнем соединении могут быть возвращены несовпадающие строки в одной или обеих таблицах.
Какая польза от SQL OUTER JOIN
В SQL Outer Join все содержимое обеих таблиц объединяется независимо от того, совпадают они или нет.
Во внешнем соединении могут быть возвращены несовпадающие строки в одной или обеих таблицах.
Пример внешнего соединения SQL
Оператор SQL OUTER JOIN (+) используется только с одной стороны условия соединения.
Типы внешнего соединения
- ЛЕВОЕ СОЕДИНЕНИЕ возвращает только несовпадающие строки из левой таблицы.
- RIGHT JOIN возвращает только несовпадающие строки из правой таблицы.
- 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 окончено.