Relaatiotietokannat ovat vakaa monille yrityksille. Ne luodaan tietokonekielellä nimeltä Structured Query Language (SQL). Jos työskentelet suhteellisen kanssa tietokannat, voit toisinaan tutkia tai kerätä tietoja, jotka sijaitsevat useammassa kuin yhdessä tietokannan taulukossa.
Mikä on SQL JOIN -lauseke?
SQL JOIN -lauseke mahdollistaa kahden tai useamman taulukon liittämisen, yleensä siihen liittyvän sarakkeen perusteella, jotta tietoja kohdellaan ikään kuin ne olisivat yhdessä taulukossa. Liitos ei muuta itse taulukoita.
SQL LIITY on joustava ja toimiva. Vaikka liitoksia on useita, sisempi liitos on yksi helpoimpia ymmärtää ja käyttää. Katsokaa seuraavia SQL-käskyjä, jotka kuvaavat kuinka yhdistää kolmen eri taulukon tulokset sisäisen liitoksen avulla.
Sisäisen liittymisen esimerkki
Ota esimerkiksi taulukot, jotka sisältävät ohjaimia yhdessä taulukossa ja ajoneuvojen ottelut toisessa. Sisempi liitos tapahtuu, kun sekä ajoneuvo että kuljettaja sijaitsevat samassa kaupungissa. Sisäinen liitos valitsee molemmat taulukot kaikki rivit, jotka sisältävät sijaintisarakkeiden välisen vastaavuuden.
Alla oleva SQL-käsky yhdistää Ajurit ja ajoneuvot -taulukoiden tiedot tapauksissa, joissa kuljettaja ja ajoneuvo sijaitsevat samassa kaupungissa:
VALITSE sukunimi, etunimi, tunniste
Kuljettajilta, ajoneuvoilta
Missä kuljettajat.sijainti = ajoneuvot.sijainti
Tämä kysely tuottaa seuraavat tulokset:
sukunimi etunimi -tagi
Baker Roland H122JM
Hymiö Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT
Laajenna nyt tätä esimerkkiä sisällyttämällä kolmas taulukko. Jos haluat sisällyttää vain kuljettajat ja ajoneuvot, jotka ovat läsnä viikonloppuisin auki olevissa paikoissa, tuo kyselyyn kolmas taulukko laajentamalla JOIN-käskyä seuraavasti:
VALITSE sukunimi, etunimi, tunniste, avoimet viikkotapahtumat
Kuljettajilta, ajoneuvoilta, paikoilta
Missä kuljettajat.sijainti = ajoneuvot.sijainti
JA ajoneuvot. Sijainti = sijainnit. Sijainti
AND locations.open_weekends = 'Kyllä'
Tämä kysely tuottaa seuraavat tulokset:
sukunimi etunimi -tagi avoin_viikkosuunnat
Baker Roland H122JM kyllä
Jacobs Abraham J291QR kyllä
Jacobs Abraham L990MY kyllä
Tämä tehokas SQL JOIN -lauseen laajennus yhdistää tietoja monimutkaisesti. Pöytien yhdistämisen lisäksi sisäiseen liitokseen tämä tekniikka yhdistää useita pöytiä muun tyyppisiin liitoksiin.
Muun tyyppiset liittymät
Kun taulukoilla on vastaava tietue, sisäiset liitokset ovat oikea tapa edetä, mutta joskus yhdellä taulukolla ei ole siihen liittyvää tietuetta liitoksen rakentamille tiedoille, joten kysely epäonnistuu. Tämä tapaus vaatii ulompi liitos, joka sisältää tulokset, jotka ovat yhdessä taulukossa, mutta joilla ei ole vastaavaa osumaa liitetyssä taulukossa.
Lisäksi voit päättää käyttää erityyppistä liitosta olosuhteista riippuen. Nämä muut liitostyypit ovat:
- Vasen ulompi liitos (vasen liitos): Sisältää kaikki tietueet vasemmasta taulukosta, vaikka oikeassa taulukossa ei olisikaan vastaavaa tietuetta.
- Oikea ulompi liitos (oikea liitos): Palauttaa oikean taulukon kaikki asiaankuuluvat tiedot, vaikka vasemmassa taulukossa ei olisikaan vastaavuuksia.
- Täysi liittyminen: Valitsee kaikki tietueet kahdesta taulukosta riippumatta siitä, onko niillä vastaava liittymisehto.