В SQL, a присъединяване се използва за сравнение и комбиниране - буквално присъединяване - и връщане на конкретни редове данни от две или повече таблици в база данни. Една вътрешно съединение намира и връща съвпадащи данни от таблици, докато an външно съединение намира и връща съвпадащи данни и някои различни данни от таблиците.
Вътрешното присъединяване се фокусира върху общото между две таблици. Когато използвате вътрешно присъединяване, трябва да има поне някои съвпадащи данни между две (или повече) таблици, които се сравняват. Вътрешно присъединяване търси таблици за съвпадение или припокриване на данни. След като го намери, вътрешното съединяване комбинира и връща информацията в една нова таблица.
Нека разгледаме общ сценарий на две таблици: цени на продуктите и количества. Общата информация в двете таблици е името на продукта, така че това е логическата колона за присъединяване към таблиците На. Има някои продукти, които са често срещани в двете таблици; други са уникални за една от таблиците и нямат съвпадение в другата таблица.
Вътрешно присъединяване на Продукти връща информация само за тези продукти, които са общи и в двете таблици.
Външно присъединяване връща набор от записи (или редове), които включват това, което вътрешно съединение би се върнало, но също така включва и други редове, за които в другата таблица не е открито съответстващо съвпадение.
Има три вида външни съединения:
Всяко от тези външни съединения се отнася до частта от данните, която се сравнява, комбинира и връща. Понякога в този процес ще бъдат генерирани нули, тъй като някои данни се споделят, докато други не са.
Лявото външно съединение ще върне всички данни в Таблица 1 и всички споделени данни (така че вътрешната част на примера на диаграмата на Venn), но само съответните данни от Таблица 2, което е дясното съединяване.
В нашата примерна база данни има два продукта - портокали и домати - отляво (Цени таблица), които нямат съответен запис в „правото“ (таблица с количествата). В ляво съединение тези редове са включени в набора от резултати с NULL в колоната Количество. Останалите редове в резултата са същите като вътрешното съединяване.
Дясната външна връзка връща данните на Таблица 2 и всички споделени данни, но само съответните данни от Таблица 1, която е лявата връзка.
Подобно на левия пример за присъединяване, изходът на дясното външно съединение включва всички редове от вътрешното съединение и два реда - броколи и скуош - от „дясното“ (Количества таблица), които нямат съответстващи записи отляво.
Пълно външно съединение или пълно присъединяване, което е не поддържана от популярната система за управление на бази данни MySQL, комбинира и връща всичко данни от две или повече таблици, независимо дали има споделена информация. Помислете за пълно присъединяване като просто дублиране на цялата определена информация, но в една таблица, а не на няколко таблици. Когато липсват съвпадащи данни, ще бъдат произведени нули.
Това са само основите, но много неща могат да се правят с присъединявания. Има дори присъединения, които могат да изключат други присъединения!
Това видео обяснява разликата между различните видове съединения. Препоръчва се да започне от момента, в който започва дискусията за присъединяване.