SQL - Pridruživanje tabela


Osnove SQL pridruživanja

Svi upiti koje ste do sada vidjeli koncentrirani su na jedan stol (table). Ali u stvarnoj životnoj situaciji često trebate postaviti dvije ili više tabela u isto vrijeme i donijeti kombinisani skup rezultata. To se tehnički naziva pridruživanjem, jer uključuje spajanje različitih tabela, na osnovu zajedničkog polja između njih (stranog ključa) radi stvaranja novih prikaza podataka.

Da bismo to lako razumjeli, pogledajmo sljedeće tabele zaposlenih i odjela. Ovdje je kolona dept_id tabele zaposlenih strani ključ tabele odjeljenja. Stoga se ove dvije tabele mogu spojiti da bi se dobili kombinovani podaci.






Vrste pridruživanja

Kada spojite tabele, tip spajanja koji kreirate u vašem upitu utiče na redove koji se pojavljuju u skupu rezultata. Možete stvoriti sljedeće vrste spajanja:


Unutrašnji spoj

Spajanje koje vraća samo one redove koji imaju podudaranje u obe spojene tabele. Na primjer, možete se pridružiti tabelama zaposlenih i odjela kako biste stvorili skup rezultata koji prikazuje ime odjela za svakog zaposlenog. U unutrašnje udruživanju, zaposleni za koje ne postoje informacije o odjelima nisu uključeni u skup rezultata, kao ni odjeli bez zaposlenih. O unutarašnjem spajanju saznat ćemo više u sljedećim lekcijama.


Vanjsko pridruživanje

Vanjski spojevi su produžetak unutarnjih spajanja. Vanjsko udruživanje vraća redove čak i ako nemaju povezane redove u pridruženoj tabeli. Postoje tri vrste vanjskih spojeva: lijevi vanjski spoj (ili left join), desni vanjski spoj (ili right join) i puni vanjski spoj (ili full join). O ovim varijacijama vanjskog spoja (pridruživanja) naučit ćemo u sljedećim lekcijama.


Unakrsno pridruživanje

Unakrsna spajanja (pridruživanje) su spajanja bez uslova spajanja. Svaki red jedne tabele kombinuje se sa svakim redom druge tabele. Ova vrsta skupa rezultata naziva se kartezijanskim proizvodom ili unakrsnim proizvodom. Na primjer, međusobno spajanje tabela zaposlenih i odjela daje skup rezultata s jednim redom za svaku moguću kombinaciju zaposlenog/odjela. O unakrsnom pridruživanju ćemo naučiti više u sljedećim lekcijama.