Facebook iconTwitter icon

Nachádzate sa tu

Domov

09. Access JOIN

Doposiaľ sme pracovali len s jednou tabuľkou na ktorej sme si ukázali základne operácie. Databáza však nie je o jednej tabuľke aleo sústave logicky usporiadaných tabuliek, ktoré je navzájom možne prepájať a tak tvoriť dátové výstupy presne na mieru, pri maximálnej optimalizácii dátového priestoru.

Prečo držať dáta v rôznych tabuľkách? Odpoveď znie kôli prehľadnosti a úspore dátového priestoru. Uvažujme o tabuľke ktorá ma 1 000 000 riadkov  a 10 stĺpcov, pričom jedným z nich je aj krajina z ktorej je zákazník. Teda máme 1 000 000 buniek obsahujúcich rôzne krajiny, čo zaberie relatívne veľa priestoru. Pre účely fakturácie by sme potrebovali vedieť DPH, čo by znamenalo ďalších 1 000 000 riadkov. Dátový priestor = peniaze, lebo miesto niečo stojí. Namiesto toho stačí vyrobiť v databáze druhú malú tabuľku, ktorá bude obsahovať len 200 riadkov a dva stĺpce, Krajina a sadzba DPH. Prostredníctvom query a príkazu join tieto dve tabuľky spojíme a ku krajinám dotiahneme daňovú sadzbu. Ak 1 riadok tabulky predstavuje 1 KB tak sme ušetrili 999 800 KB priestoru.

Na to aby sme dokázali dve tabuľky spojiť potrebujeme stĺpce s rovnakým typom obsahu v oboch tabuľkách.

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.

V tabuľke zákazníkov máme teda uvedené mesto, z ktorého je zákazník. Pre učely korešpondencie potrebujeme ku tomuto mestu dotiahnuť aj jeho PSČ, ktoré sa nachádza v tabuľke tabulka_PSC ktorá obsahuje dva stĺpce, PSC a Mesto. Join tvoríme jednoducho a to potiahnutím konkrétneho poľa z jednej tabuľky do druhej. Treba mať na pamäti, že polia, cez ktore chceme spojiť tabuľky musia obsahovať zhodné hodnoty. Po tom ako máme vytvorený join, z jednotlivých tabuliek vyberieme polia, ktoré chceme vo výsledku zobraziť.

V zásade rozlišujeme tri druhy joinov LEFT, RIGHT a INNER  JOIN. Ich rozdiel spočíva v základnom spájaní množín, tak ako to ukazuje nasledovný obrázok. 

Left Join ku hodnotám z ľavej (hlavnej) tabuľky dotiahne hodnoty z pravej. Teda ak by sme v tabuľke zákazníkov mali Zvolen, ale ten by nebol v tabuľke PSC, vo výstupe by sa síce objavil Zvolen, ale na mieste PSČ by bola prázdna hodnota.

Right join obdobne ku hodnotám z pravej tabuľky dotiahne hodnoty z ľavej.

 Inner join spraví prienik tabuliek, a teda spojí len tie hodnoty, ktoré sa nachádzajú v oboch tabuľkách.

Nastavenie typu joinu sa robí dvojklikom na join spojovník. 

Výstup Query vyzerá nasledovne (Left join):

V tomto tutoriáli sme sa zamerali na spájanie tabuliek, čo predstavuje jeden zo základných kameňov práce s databázou. V nasledovnom tutoriáli sa bližšie pozrieme na SQL syntax, resp. ako napísať Join v SQL

Reklamné odkazy

kosime.sk
Kosenie trávy, čistenie pozemkov a záhradnícke práce