Preuzimanje podataka iz više tabela pomoću SQL Inner Joins

Unutra se pridruži povratnim informacijama koje se pojavljuju u dvije ili više baza podataka

Unutrašnja pridruživanja su najčešće korišćena udruženja u SQL-u. Oni vraćaju samo informacije koje postoje u dvije ili više tabela baze podataka. Uslov za pridruživanje određuje koji su zapisi upareni zajedno i navedeni su u WHERE klauzuli. Na primjer, ako vam je potrebna lista usmjerenja vozača / vozila u kojoj se vozilo i vozač nalaze u istom gradu, sljedeći SQL upit izvršava ovaj zadatak:

SELECT ime prezime, firstname, oznaka OD vozača, vozila WHERE drivers.location = vehicles.location

Evo rezultata:

zadnja ime ime prvog imena
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Imajte na umu da su rezultati upravo ono što je traženo. Moguće je dodatno precizirati upit postavljanjem dodatnih kriterijuma u WHERE klauzuli. Pretpostavimo da se prvobitni upiti poklapaju sa vozačima na vozila koja nisu ovlašćena za vožnju (vozači kamiona i automobili i obrnuto). Za rešavanje ovog problema možete koristiti sljedeći upit:

SELECT ime, firstname, tag, vehicles.class OD vozača, vozila WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Ovaj primjer specificira izvornu tabelu za atribu klase u SELECT klauzuli jer je klasa dvosmislena - ona se pojavljuje u obe tabele. Kod obično određuje koja kolona tablice treba uključiti u rezultate upita. U ovom slučaju, to ne pravi razliku, jer su kolone identične i spojene su pomoću equijoin-a. Međutim, ako su kolone sadržavale različite podatke, ova razlika bi bila kritična. Evo rezultata ovog upita:

prezime ime klase prvog naziva
---------- ------------ ---- ------
Baker Roland H122JM Automobil
Smythe Michael D824HA Kamion
Jacobs Abraham J291QR Automobil

Nestali redovi uparili su Michaela Smitha sa kolima i Abrahamom Jacobsom u kamion, vozila za koje nisu imali dozvolu da voze.

Takođe možete koristiti unutrašnje spojeve za kombinovanje podataka iz tri ili više tabela .