Relačné databázy sú stajňou mnohých firiem. Sú vytvorené v počítačovom jazyku s názvom Structured Query Language (SQL). Ak pracujete s relačnými databázy, príležitostne preskúmate alebo zhromaždíte údaje, ktoré sa nachádzajú vo viac ako jednej tabuľke databázy.
Čo je príkaz SQL JOIN?
Príkaz SQL JOIN umožňuje spojiť dve alebo viac tabuliek, zvyčajne na základe príbuzného stĺpca, takže s údajmi sa zaobchádza, akoby sa nachádzali v jednej tabuľke. Samotné tabuľky sa spojením nezmenia.
SQL JOIN je flexibilný a funkčný. Aj keď existuje niekoľko typov spojení, vnútorné spojenie je jedno z najjednoduchších na pochopenie a použitie. Zoznámte sa s nasledujúcimi príkazmi SQL, ktoré ilustrujú, ako kombinovať výsledky z troch rôznych tabuliek pomocou vnútorného spojenia.
Príklad vnútorného spojenia
Napríklad vezmite tabuľky, ktoré obsahujú ovládače v jednej tabuľke a zápasy vozidiel v druhej. K vnútornému spojeniu dochádza tam, kde sa vozidlo aj vodič nachádzajú v rovnakom meste. Vnútorné spojenie vyberie všetky riadky z oboch tabuliek, ktoré obsahujú zhodu medzi stĺpcami umiestnenia.
Nasledujúci príkaz SQL kombinuje údaje z tabuliek Vodiči a vozidlá v prípadoch, keď sa vodič a vozidlo nachádzajú v rovnakom meste:
VYBERTE priezvisko, meno, značku
OD vodičov, vozidiel
KDE vodiči.miesto = vozidlá.miesto
Tento dopyt vedie k nasledujúcim výsledkom:
priezvisko meno značky
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT
Teraz rozšírte tento príklad o tretiu tabuľku. Ak chcete zahrnúť iba vodičov a vozidlá prítomné na miestach, ktoré sú otvorené cez víkend, preneste do dotazu tretiu tabuľku rozšírením príkazu JOIN takto:
VYBERTE priezvisko, meno, značku, otvorené_týždne
OD vodičov, vozidiel, umiestnení
KDE vodiči.miesto = vozidlá.miesto
AND vehicles.location = locations.location
AND locations.open_weekends = 'Áno'
Tento dopyt vedie k nasledujúcim výsledkom:
priezvisko meno priezvisko open_weekends
Baker Roland H122JM áno
Jacobs Abraham J291QR áno
Jacobs Abraham L990MY áno
Toto výkonné rozšírenie základného príkazu SQL JOIN kombinuje dáta komplexným spôsobom. Okrem kombinovania tabuliek s vnútorným spojením táto technika kombinuje viac tabuliek s inými typmi spojení.
Ďalšie typy pripojení
Keď majú tabuľky zodpovedajúci záznam, cestou sú vnútorné spojenia, ale niekedy jedna tabuľka nemá súvisiaci záznam pre údaje, na ktorých je spojenie založené, takže dopyt zlyhá. Tento prípad vyžaduje vonkajšie spojenie, ktorý obsahuje výsledky, ktoré existujú v jednej tabuľke, ale nemá zodpovedajúcu zhodu v spojenej tabuľke.
Ďalej sa môžete rozhodnúť použiť iný typ spojenia, podľa okolností. Tieto ďalšie typy pripojení sú:
- Ľavé vonkajšie spojenie (ľavé spojenie): Obsahuje všetky záznamy z ľavej tabuľky, aj keď pravá tabuľka nemá zodpovedajúci záznam.
- Pravý vonkajší spoj (pravé spojenie): Vráti všetky príslušné informácie z pravej tabuľky, aj keď ľavá tabuľka nemá zhodu.
- Úplné pripojenie: Vyberie všetky záznamy z dvoch tabuliek bez ohľadu na to, či majú alebo nemajú podmienku zhodného spojenia.