Разлики между ляво и дясно присъединяване

Лево срещу дясно присъединяване

Когато се занимавате със SQL, joins е често срещано име, което ще се появява от време на време. Клаузата за присъединяване помага при комбинирането на записи от различни таблици в набор от данни. В действителност съединяването създава таблица, която може да се използва както е, така и да се разгърне с други. Ето защо е препоръчително да се разберат тези съединения и разликите между тях, така че да се знае конкретното присъединяване и дали дясното или лявото трябва да се вземат в специални случаи.

За да разберете по-добре присъединенията и техните различия, е важно да разберете видовете налични присъединения. Обикновено има три типа съединения. Тези съединения включват вътрешно съединение, кръстосано съединение и външно съединение. Вътрешното съединение обикновено сравнява таблиците и ще даде или върне резултат само в случай, че бъде намерено съвпадение. Основната функция на вътрешното съединение е да намалява размера на набора от резултати.

Кръстосаните съединения от друга страна сравняват две таблици и дават възвръщаемост на всяка възможна комбинация, идваща от редовете на двете таблици. Очакват се многобройни резултати от това присъединяване и повечето от тях дори не могат да имат смисъл. Следователно използването на това съединение трябва да се практикува внимателно.

Външното съединяване прави сравнение на таблици и връща данни, когато е налице съвпадение. Точно както се вижда във вътрешното съединение, външното присъединяване дублира редове в дадена таблица в случай, че се виждат съвпадащи записи. Резултатите от външните съединения обикновено са по-големи и по този начин наборите от данни са големи, тъй като самият набор не е отстранен от множеството.

Ляво съединение се отнася до запазване на всички записи от 1-ва таблица, независимо от резултата, и вмъкване на NULL стойности, когато стойностите на втората таблица не съвпадат. От друга страна, дясното присъединяване се отнася до запазването на всички записи, идващи от 2-ра таблица, независимо от това какъв е резултатът, и използването на NULL стойности, когато резултатите не съвпадат с тези в 1-ва таблица.

Следователно лявото външно съединение запазва всички редове, които са в „лявата“ таблица, независимо дали има ред, съвпадащ с нея в „дясната“ таблица. Следователно лявата таблица се отнася до таблицата, която е на първо място в съвместното изявление. Тя трябва да се показва отляво на ключовата дума „присъединяване“, която се среща на масата. Когато се извърши ляво външно съединение, всички редове отляво трябва да бъдат върнати. Несъответстващите колони в таблицата ще се запълват с NULL винаги, когато няма съвпадение.

Важно е да се отбележи, че когато се работи с тези две съединения, всички редове отляво на таблицата са показани в таблицата в ляво външно съединение. Резултатите се показват независимо от това дали в дясната таблица присъстват съвпадащи колони. В дясно външно съединение се показват всички редове отдясно и това е независимо от това дали има съответстващи колони в лявата част на таблицата.

Изборът дали да отидете за лявото външно съединение или дясното външно съединение няма значение, тъй като са показани същите резултати. Функционалността, която представя дясното външно съединение, е същата функционалност, която представя лявата външна връзка. Чрез просто превключване на реда, в който таблиците се появяват в SQL израза, можете да очаквате подобни резултати, независимо от използваното съединение.

резюме

Присъединяването се извършва в три основни групи - вътрешно присъединяване, кръстосано присъединяване и външно присъединяване

Лявото външно съединение показва всички редове отляво на таблицата

Десният присъединяване показва всички редове от дясната част на таблицата

Редуването на SQL последователността може да елиминира използването на дясната и лявата външна връзка и вместо това да се използва само едно.