Nachádzate sa tu
06. SQL JOIN
V tomto článku sa zameriame na spájanie (join) tabuliek, na ktorom je celý prístup databáz založený. Podstatou databázy nie je mať všetky dáta v jednej obrovskej tabuľke, ale v logickej sústave tabuliek, ktoré cez joiny prepojíme a tak vyskladáme želaný report.
Na ilustraciu použijeme iný príklad, kde pre korešpondenčné účely do tabuľky zákazníkov, dotiahneme ku mestu odkaľ je zákazník Poštové smerové číslo. Je nutné si uvedomiť, že polia(stĺpce), cez ktoré chcetme tabuľky spojiť, musia obsahovať zhodné hodnoty rovnakého dátového typu.
V našom prípade použijeme stĺpce mesto. Základná syntax pre spájanie tabuliek predstavuje JOIN a ON.
SELECT tabulka_zakaznikov.meno, tabulka_zakaznikov.priezvysko, tabulka_zakaznikov.mesto, tabulka_PSC.PSC
FROM tabulka_zakaznikov LEFT JOIN tabulka_PSC ON tabulka_zakaznikov.mesto = tabulka_PSC.mesto
Na to aby sme nemuseli zakaždým vypisovať tabulka_zakaznikov resp. tabulka_PSC. zavedieme si do SQL skriptu aliasy, ktoré ho krásne sprehladnia. Alias znamená, že tabuľke dáme dočasne iné meno(prezívku) prostredníctvom príkazu AS. Tabuľku zakaznikov premenujeme na a, pricom tabulku PSC premenujeme na b.
SELECT a.meno, a.priezvysko, a.mesto, b.PSC
FROM tabulka_zakaznikov AS a LEFT JOIN tabulka_PSC AS b ON a.mesto = b.mesto
Skript teda čítame nasledovne. Z tabuľky zákazníkov vyber meno, priezvysko a mesto, pričom ku mestu z tabuľky PSC dotiahni Poštovné smerové číslo a to tak, že tabuľky spoj cez zhodný stĺpec, ktorý sa nachádza v oboch z nich (mesto).
V SQL existujú nasledovné typy joinov:
LEFT JOIN - ku hodnotám z ľavej tabuľky pripjí hodnoty z pravej tabuľky
RIGHT JOIN - ku hodnotám z pravej tabuľky pripojí hodnoty z lavej tabuľky
INNER JOIN - spraví prienik tabuliek
Pre lepšie pochopenie príkazu JOIN si môžete prečítať článok 09. Access JOIN.