Pridružite se lijevo i desno
Kad se bavite SQL-om, pridruživanje je uobičajeno ime koje će se pojaviti s vremena na vrijeme. Klauzula pridruživanja pomaže u kombinaciji zapisa iz različitih tablica u skupu podataka. Na snazi spajanje stvara tablicu koja se može koristiti bilo onako kako se koristi ili razvaljati s drugima. Stoga je preporučljivo razumjeti ove pridruživanja i razlike između njih kako bi se znala specifična spoja i treba li se desiti u desno ili lijevo u posebnim slučajevima.
Da biste bolje razumjeli pridruživanja i njihove razlike, važno je razumjeti dostupne vrste pridruživanja. Općenito postoje tri vrste spajanja. Ove spojeve uključuju unutarnju, križnu i vanjsku spojnicu. Unutarnje spajanje općenito uspoređuje tablice i daje samo ili vraća rezultat samo u slučaju pronalaska podudaranja. Glavna funkcija unutarnjeg spajanja je smanjiti veličinu skupova rezultata.
Križni zglobovi s druge strane uspoređuju dvije tablice i vraćaju svaku moguću kombinaciju koja dolazi iz redova obje tablice. Očekuju se brojni rezultati od ovog pridruživanja i većina njih možda i ne bi imala smisla. Korištenje ovog priključka stoga se treba primjenjivati oprezno.
Vanjsko spajanje uspoređuje tablice i vraća podatke kada je podudaranje dostupno. Kao što se vidi u unutarnjem spajanju, vanjsko pridruživanje duplicira redove u zadanoj tablici u slučaju da se vide odgovarajući zapisi. Rezultati vanjskih spajanja su obično veći i stoga su skupovi podataka veliki jer skup sam po sebi nije uklonjen iz skupa.
Lijevo spajanje odnosi se na čuvanje svih zapisa iz 1. tablice bez obzira na rezultat i umetanje NULL vrijednosti kada se vrijednosti druge tablice ne podudaraju. Pravo spajanje, s druge strane, odnosi se na čuvanje svih zapisa koji dolaze iz 2. tablice, bez obzira na to što je rezultat, i na korištenje NULL vrijednosti kada se rezultati ne podudaraju s onima iz 1. tablice..
Stoga lijevo vanjsko spajanje zadržava sve redove koji se nalaze u 'lijevoj' tablici, neovisno o tome postoji li redak koji odgovara njemu u 'desnoj' tablici. Stoga se lijeva tablica odnosi na tablicu koja je na prvom mjestu u zajedničkoj izjavi. To bi trebalo biti lijevo od ključne riječi "pridruži se" koja se pojavljuje na stolu. Kad se izvede lijevo vanjsko spajanje, trebaju se vratiti svi redovi s lijeve strane. Stupci koji se ne podudaraju u tablici popunit će se s NULL svaki put kada nema podudaranja.
Važno je napomenuti da kada se bave ova dva spajanja, svi redovi s lijeve strane tablice su prikazani u tablici u lijevom vanjskom spoju. Rezultati se prikazuju bez obzira na to postoje li u odgovarajućoj tablici odgovarajući stupci. U desnom vanjskom spoju prikazani su svi redovi s desne strane i to je neovisno o tome postoje li odgovarajući stupci na lijevoj strani tablice.
Odabir želi li ići za lijevu vanjsku ili desnu vanjsku spojnicu nije važno jer su prikazani isti rezultati. Funkcionalnost koju predstavlja desna vanjska spojnica ista je funkcija koju predstavlja lijeva vanjska spojnica. Jednostavnim mijenjanjem redoslijeda u kojem se tablice pojavljuju u SQL izrazu, možete očekivati slične rezultate, bez obzira na upotrijebljeno spajanje.
Sažetak
Spajanje dolazi u tri glavne skupine - unutarnje spajanje, unakrsno pridruživanje i vanjsko spajanje
Lijevo vanjsko pridruživanje prikazuje sve retke s lijeve strane tablice
Desni spoj prikazuje sve retke s desne strane tablice
Izmjena SQL slijeda može eliminirati upotrebu desnih i lijevih vanjskih spojeva i umjesto toga koristiti samo jedno.