Levo proti desni
Ko se ukvarjate s SQL, je pridružitev splošno ime, ki se bo pojavljalo vsake toliko časa. Klavzula pridruživanja pomaga pri kombiniranju zapisov iz različnih tabel v naboru podatkov. Dejansko združevanje ustvari tabelo, ki jo je mogoče uporabiti tako, kot je, ali razviti z drugimi. Zato je priporočljivo razumeti te povezave in razlike med njimi, tako da poznate poseben spoj in ali je treba v posebnih primerih zajeti desno ali levo.
Za boljše razumevanje združitev in njihovih razlik je pomembno razumeti vrste povezav, ki so na voljo. Na splošno obstajajo tri vrste priključkov. Te spojnice vključujejo notranji spoj, križni spoj in zunanji spoj. Notranji spaj na splošno primerja tabele in daje rezultat ali vrne rezultat le, če najdete ujemanje. Glavna funkcija notranjega združevanja je zmanjšati velikost nabora rezultatov.
Navzkrižne povezave na drugi strani primerjajo dve tabeli in vrnejo vsako možno kombinacijo iz vrstic obeh tabel. Od te pridružitve se pričakujejo številni rezultati, ki jih večina morda niti ne bo pomenila. Uporaba tega priključka je zato treba ravnati previdno.
Zunanja povezava primerja tabele in vrne podatke, ko je na voljo ujemanje. Tako kot je razvidno iz notranjega združevanja, zunanje združevanje podvaja vrstice v dani tabeli v primeru, da so vidni ujemljivi zapisi. Rezultati zunanjih spajanj so običajno večji, zato so nabori podatkov veliki, ker niz sam po sebi ni odstranjen.
Levi spoj se nanaša na shranjevanje vseh zapisov iz 1. tabele ne glede na rezultat in vstavljanje NULL vrednosti, kadar se vrednosti druge tabele ne ujemajo. Desna povezava se na drugi strani nanaša na shranjevanje vseh zapisov, ki prihajajo iz 2. tabele, ne glede na to, kakšen je rezultat, in na uporabo NULL vrednosti, kadar se rezultati ne ujemajo s tistimi iz 1. tabele..
Levi zunanji spoj zato ohranja vse vrstice, ki so v 'levi' tabeli, ne glede na to, ali je vrstica, ki se ujema s tabelo 'desno'. Leva tabela se torej nanaša na tabelo, ki je prva v skupni izjavi. Levo od ključne besede „pridruži se“, ki se pojavi na mizi. Ko se izvede levi zunanji spoj, je treba vrniti vse vrstice z leve. Neustrezni stolpci v tabeli bodo izpolnjeni z NULL, kadar ni ujemanja.
Pomembno je upoštevati, da so pri obravnavi teh dveh spojev vse vrstice z leve strani prikazane v tabeli v levem zunanjem spoju. Rezultati se prikazujejo ne glede na to, ali so v desni tabeli prisotni kateri koli ujemajoči se stolpci. V desnem zunanjem spoju so prikazane vse vrstice na desni in to je ne glede na to, ali so na levi strani tabele ujemajoči se stolpci..
Izbira, ali naj gre za levi zunanji ali desni zunanji spoj, ni pomembna, saj so prikazani enaki rezultati. Funkcionalnost, ki jo predstavlja desni zunanji spoj, je enaka funkcionalnost, kot jo predstavlja leva zunanja. Če preprosto spremenite vrstni red, v katerem so tabele prikazane v stavku SQL, lahko pričakujete podobne rezultate, ne glede na uporabljeno združitev.
Povzetek
Združevanje poteka v treh glavnih skupinah - notranja, navzkrižna in zunanja
Levi zunanji spoj prikazuje vse vrstice z leve strani tabele
Desna povezava prikazuje vse vrstice z desne strani tabele
Če zamenjate zaporedje SQL, lahko odstranite uporabo desnega in levega zunanjega priključka in namesto tega uporabite samo enega.