Použite SQL Inner Joins na kombinovanie údajov z troch alebo viacerých tabuliek
Pomocou príkazov SQL JOIN môžete kombinovať údaje z troch alebo viacerých tabuliek. SQL JOIN je extrémne flexibilný a jeho výkonné funkcie sa dajú použiť na kombinovanie údajov z viacerých tabuliek. Poďme sa pozrieť na príkazy SQL, ktoré vám umožnia kombinovať výsledky z troch rôznych tabuliek pomocou vnútorného spojenia.
Vnútorný príklad pripojenia
Napríklad, vezmite si tabuľky, ktoré obsahujú ovládače v jednej tabuľke a zápasové vozidlá v druhej. Vnútorný spoj sa vyskytuje tam, kde sa vozidlo a vodič nachádzajú v tom istom meste. Vnútorný spoj vyberie všetky riadky z oboch tabuliek, ktoré obsahujú zhodu medzi stĺpcami umiestnenia.
Príkaz SQL uvedený nižšie spája údaje z tabuliek Ovládače a vozidlá v prípadoch, keď sa vodič a vozidlo nachádzajú v tom istom meste:
SELECT priezvisko, meno, značka FROM ovládače, vozidlá WHERE drivers.location = vehicles.locationTento dopyt prináša nasledujúce výsledky:
priezvisko meno meno -------- --------- --- Baker Roland H122JM Smythe Michael D824HA Smythe Michael P091YF Jacobs Abraham J291QR Jacobs Abraham L990MTTeraz rozšíriť tento príklad tak, aby obsahoval tretiu tabuľku. Predstavte si, že chcete zahrnúť iba vodičov a vozidiel, ktoré sa nachádzajú na miestach, ktoré sú otvorené cez víkend. Do svojho dopytu môžete vložiť tretiu tabuľku rozšírením vyhlásenia JOIN takto:
SELECT priezvisko, meno, tag, open_weekends FROM vodiči, vozidlá, miesta WHERE drivers.location = vehicles.location AND vehicles.location = locations.location AND locations.open_weekends = 'Áno' priezvisko firstname tag open_weekends -------- --------- --- ------------- Baker Roland H122JM áno Jacobs Abraham J291QR áno Jacobs Abraham L990MT ánoToto výkonné rozšírenie základného príkazu SQL JOIN umožňuje kombinovať údaje komplexným spôsobom. Okrem kombinácie tabuliek s vnútorným spojom môžete túto techniku použiť aj na kombinovanie viacerých tabuliek pomocou vonkajšej spojky. Vonkajšie spojenia obsahujú výsledky, ktoré existujú v jednej tabuľke, ale nemajú zodpovedajúcu zhodu v spojenej tabuľke.