Pridobivanje podatkov iz več tabel z SQL Inner Joins

Notranja združuje povratne informacije, ki se pojavijo v dveh ali več podatkovnih bazah

Notranja združenja so najpogosteje uporabljeni pridruži v SQL. Vrnejo samo informacije, ki obstajajo v dveh ali več tabelah baz podatkov. Pogoj združitve določa, kateri zapisi so seznanjeni skupaj in so navedeni v klavzuli WHERE. Na primer, če potrebujete seznam združitev voznika / vozila, v katerem se voznik in voznik nahajajo v istem mestu, ta naloga izpolni naslednjo SQL poizvedbo:

SELECT lastname, firstname, tag FROM gonilniki, vozila WHERE drivers.location = vehicles.location

Tukaj so rezultati:

ime lastnosti prvega imena
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Upoštevajte, da so rezultati točno tisti, kar je bil iskan. Dodatno lahko podrobneje določite poizvedbo z določitvijo dodatnih kriterijev v klavzuli WHERE. Predpostavimo, da se prvotna poizvedba ujema z gonilniki z vozili, ki jim ni dovoljeno voziti (vozniki tovornjakov v avtomobile in obratno). Če želite odpraviti to težavo, lahko uporabite naslednjo poizvedbo:

SELECT lastname, firstname, tag, vehicles.class FROM drivers, vehicles WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Ta primer določa izvorno tabelo atributa razreda v klavzuli SELECT, ker je razred dvoumen - pojavlja se v obeh tabelah. Koda običajno določi, kateri stolpčni stolpec mora biti vključen v rezultate poizvedbe. V tem primeru se ne razlikuje, saj so stolpci enaki in združeni z uporabo equijoin. Če pa so stolpci vsebovali različne podatke, bi bilo to razlikovanje kritično. Tukaj so rezultati te poizvedbe:

ime lastnega imena prvega imena
---------- ------------ ---- ------
Baker Roland H122JM avto
Smythe Michael D824HA tovornjak
Jacobs Abraham J291QR avto

Manjkajoči vrstici so Michaelu Smytheu povezali z avto in Abrahamom Jacobsom v tovornjak, vozila, za katera jim ni bilo dovoljeno voziti.

Za združevanje podatkov iz treh ali več tabel lahko uporabite tudi notranje povezave .