Získanie údajov z viacerých tabuliek pomocou SQL Internal Joins

Vnútorné spájanie vráti informácie, ktoré sa zobrazujú vo dvoch alebo viacerých databázach

Vnútorné spojenia sú najčastejšie používané spojenia v SQL. Vracajú iba informácie, ktoré existujú v dvoch alebo viacerých databázových tabuľkách. Podmienka spojenia určuje, ktoré záznamy sú spárované dohromady a je špecifikované v klauzule WHERE. Napríklad, ak potrebujete zoznam zápasov pre vodiča / vozidlo, v ktorých sa vozidlo a vodič nachádzajú v tom istom meste, tento úloha splní tento dotaz SQL :

SELECT priezvisko, meno, značka FROM ovládače, vozidlá WHERE drivers.location = vehicles.location

Tu sú výsledky:

názov priezviska
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Všimnite si, že výsledky sú presne to, čo bolo požadované. Ďalšiu možnosť je možné spresniť zadaním ďalších kritérií v klauzule WHERE. Predpokladajme, že pôvodný dopyt zodpovedá ovládačom vozidlám, ktoré nie sú oprávnené riadiť (vodiči nákladných vozidiel na autá a naopak). Na vyriešenie tohto problému môžete použiť nasledujúci dotaz:

SELECT priezvisko, krstné meno, značka, vehicles.class FROM ovládače, vozidlá WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Tento príklad špecifikuje zdrojovú tabuľku pre atribút triedy v klauzule SELECT, pretože trieda je nejednoznačná - objavuje sa v obidvoch tabuľkách. Kód by zvyčajne určoval, ktorý stĺpec tabuľky by mal byť zahrnutý do výsledkov dopytu. V tomto prípade to nemá žiadny rozdiel, pretože stĺpce sú identické a sú spojené pomocou equijoin. Ak by však stĺpce obsahovali rôzne údaje, toto rozlíšenie by bolo kritické. Tu sú výsledky tohto dopytu:

priezvisko triedy tagov
---------- ------------ ---- ------
Baker Roland H122JM auto
Smythe Michael D824HA Truck
Jacobs Abraham J291QR auto

Chýbajúce riadky spárovali Michaelovi Smytheovi s vozidlom a Abraham Jacobs s nákladným vozidlom, ktoré nemali oprávnenie riadiť.

Pomocou vnútorných spojov môžete kombinovať aj údaje z troch alebo viacerých tabuliek .