Ключова разлика: Присъединяването в SQL се извършва, за да се комбинират данните от две различни таблици. Вътрешно присъединяване е условие, което води до редове, които отговарят на клаузата "where" в "всички таблици"; като има предвид, че външното присъединяване е условие, което води до тези редове, които отговарят на клаузата „където“ в „поне една от таблиците“.
При въвеждането на съединенията се създават временните таблици, които се основават на колони. Винаги трябва да има две таблици за присъединителните условия. Тези условия след това обединяват съответните компоненти на една таблица с другите компоненти и водят до изцяло нова таблица. Целта на тези таблици е да извлекат съдържателни и задължителни данни или информация. В зависимост от условията, има два вида съединения, вътрешен и външен.
Синтаксис на SQL INNER JOIN:
SELECT име_на колона
FROM таблица1
Таблица INNER JOIN2
ON table1.column_name = table2.column_name;
Ключовата дума INNER JOIN избира всички редове от двете таблици, докато има съответствие между колоните в двете таблици.
Вътрешните съединения зависят от избора на дизайна и характеристиките на базата данни. Съответно, тези вътрешни съединения се използват в Equi-Joins и Natural Joins. В Equi Join има специфичен тип сравнение, което се използва за изравняване на двете дадени таблици. Следователно тази таблица използва равния предикат. Естественото присъединяване е тип присъединяване на Equi.
Синтаксисът за Equi Join е както следва:
S ELECT *
От таблица 1, таблица 2
WHERE table1.coloumn_name = table2.coloumn_name;
Ако колоните в equi-join имат едно и също име, тогава съответната версия на SQL осигурява опционална стенографска нотация, която може да бъде изразена от конструкцията USING като:
SELECT *
FROM table1 INNER JOIN таблица2 ИЗПОЛЗВАНЕ (име_на колона);
Синтаксисът за Natural Join е както следва:
SELECT *
FROM таблица1 NATURAL JOIN таблица2;
„Външното присъединяване“ не се нуждае от условия за съвпадение на записите. Това условие за присъединяване поддържа всички останали записи, освен несъвпадащите записи. Това присъединяване се разпределя допълнително в леви, десни и пълни външни условия на свързване, които се изпълняват в съответствие с желаните условия и атрибути на таблицата.
Ляво Външно присъединяване
Ключовата дума LEFT JOIN връща всички редове от лявата таблица (table1), като съответстващите редове в дясната таблица (таблица2). Резултатът е “NULL” в дясната страна, когато няма съвпадение.
Следва синтаксисът за ляво външно присъединяване:
SELECT име_на колона
FROM таблица1
LEFT OUTER JOIN таблица2
ON table1.column_name = table2.column_name;
Вдясно Outer Join
Ключовата дума RIGHT JOIN връща всички редове от дясната таблица (таблица2), като съвпадащите редове в лявата таблица (таблица 1). Резултатът е NULL в лявата страна, когато няма съвпадение.
Следва синтаксисът за дясно външно присъединяване:
SELECT име_на колона
FROM таблица1
RIGHT OUTER JOIN таблица2
ON table1.column_name = table2.column_name;
Full Outer Join
Ключовата дума FULL OUTER JOIN връща всички редове от лявата таблица (таблица1) и дясна таблица (таблица2). Ключовата дума FULL OUTER JOIN съчетава както резултата от LEFT, така и RIGHT.
Синтаксисът за пълно външно присъединяване е:
SELECT име_на колона
FROM таблица1
FULL OUTER JOIN таблица2
ON table1.column_name = table2.column_name;
Сравнение между вътрешно присъединяване и външно присъединяване:
Вътрешно присъединяване | Outer Join | |
Основна функция | Вътрешните съединения се използват основно за намиране на съответстващи редове между 2 таблици. | Външното присъединяване запазва редовете на таблицата или на двете таблици. |
Наличие на общи променливи | Тук общата променлива трябва задължително да бъде в двете таблици. | Тук променливата зависи само от първата таблица, която може или не може да присъства във втората таблица. |
Се завръща | Вътрешното присъединяване ще връща само редове, в които има съвпадение на базата на предиката за присъединяване. | Външното присъединяване ще върне всички редове, независимо дали са базирани на съвпадение или не съвпадат, въз основа на предиката за присъединяване. |
Използван за | Той се използва за преглед на записите само когато записите присъстват на двете таблици. | Използва се за преглед на всички записи само в една таблица. |
Приложимо в | Те са приложими в: Equi-Join и Естествено присъединяване | Те са приложими като: Ляво Външно присъединяване Вдясно Outer Join Full Outer Join |