SQL INNER JOIN (Suomi)

Yhteenveto: Tässä opetusohjelmassa opit, kuinka kysyä tietoja useista taulukoista SQL INNER JOIN -käskyn avulla.

Edellisessä opetusohjelmassa opit, miten tietoja voidaan kysellä yhdestä taulukosta SELECT-käskyn avulla. Haluat kuitenkin usein kysellä tietoja useista taulukoista, jotta analyysille asetettaisiin täydellinen tulosjoukko. Jos haluat kysyä tietoja useista taulukoista, käytä liitoslausekkeita.

SQL tarjoaa useita liitostyyppejä, kuten sisäinen liitos, ulompi liitos (vasen ulompi liitos tai vasen liitos, oikea ulompi liitos tai oikea liitos ja täydellinen ulompi liitos) ) ja itse liittyä. Tässä opetusohjelmassa näytetään, miten INNER JOIN -lauseketta käytetään.

SQL INNER JOIN -syntaksi

Seuraava kuvaa INNER JOIN syntaksi kahden taulukon yhdistämiseen:

1
2
3
4
5

SELECT
sarake1, sarake2
FROM
table_1
INNER JOIN -taulukko_2 ON join_condition;

Tarkastellaan yllä olevaa syntaksia tarkemmin:

  • table_1 ja table_2 kutsutaan yhdistetyiksi taulukoiksi.
  • Kullekin riville table_1 -kohdassa kysely löytää vastaavan rivin ryhmästä table_2, jotka täyttävät liittymisehdot. Jos vastaava rivi löytyy, kysely palauttaa rivin, joka sisältää molempien taulukoiden tietoja. Muussa tapauksessa se tutkii table_1 -kohdan seuraavan rivin ja tätä prosessia jatketaan, kunnes kaikki table_1 -rivit tutkitaan.

Yhdistettäessä useampaa kuin kahta taulukkoa, sama logiikka on käytössä.

SQL INNER JOIN -esimerkkejä

SQL INNER JOIN – tietojen kysely kahdesta taulukosta esimerkki

Tässä esimerkissä käytämme products – ja categories -taulukoita esimerkkitietokannassa. Seuraava kuva kuvaa tietokantakaaviota.

Yllä olevassa kaaviossa:

  • Yhdessä luokassa voi olla useita tuotteita.
  • Yksi tuote kuuluu yhteen ja vain yhteen luokkaan.

Siksi -taulukko ja rivit products -taulukossa. Kahden taulukon välinen linkki on categoryid -sarake.

Meidän on kysyttävä seuraavia tietoja molemmista taulukoista:

  • productID, productName products -taulukosta.
  • categoryName categories -taulukosta.

Seuraava kysely noutaa tiedot molemmista taulukoista:

1
2
3
4
5
6

VALITSE
tuotetunnus, tuotenimi, luokanNimi
FROM
tuotteet
SISÄINEN LIITTYMINEN
luokat ON categories.categoryID = products.categoryID;

Liittymisehto määritetään lausekkeessa INNER JOIN lausekkeen ON avainsanan jälkeen lausekkeena:

1

categories.categoryID = products.categoryID

Jokaiselle riville products taulukko, kysely löytää vastaavan rivin categories taulukosta, jolla on sama categoryid. Jos kahden rivin välillä on molemmat taulukot palauttaa rivin, joka sisältää SELECT-lausekkeessa määritetyt sarakkeet, eli tuotetunnuksen, tuotenimen ja luokan nimen; muuten se tarkistaa products -taulukon seuraavan rivin löytääksesi vastaavan rivin categories -taulukosta. Tämä prosessi jatkuu, kunnes tuotetaulukon viimeinen rivi on tutkittu.

SQL INNER JOIN – tietojen kysely kolmesta taulukosta

Voimme käyttää samoja tekniikoita yhdistämällä kolme taulukkoa.Seuraava kysely valitsee productID, productName, categoryName ja supplier products, categories ja suppliers taulukoista:

1
2
3
4
5
6
7
8
9
10
11

VALITSE
tuotetunnus,
tuotenimi,
categoryName,
companyName AS -toimittaja
FROM
-tuotteista
INNER JOIN
-luokat ON-luokissa. categoryID = products.categoryID
INNER JOIN
toimittajat ON toimittajat.supplierID = products.supplierID

implisiittinen SQL INNER JOIN

INNER JOIN -muodossa on toinen muoto, jota kutsutaan implisiittiseksi sisäiseksi liitokseksi alla esitetyllä tavalla:

1
2
3
4
5
6
7

SELECT
sarake1, sarake2
FROM
taulukko_1,
taulukko_2
WHERE
join_condition;

Tässä muodossa määrität kaikki yhdistetyt taulukot lauseke FROM ja laita liittymisehto SELECT -lausekkeen WHERE-lauseeseen. Voimme kirjoittaa yllä olevan kyselyesimerkin uudelleen käyttämällä implisiittistä INNER JOIN -sovellusta seuraavasti:

1
2
3
4
5
6
7

SELECT
productID, productName, categoryName
FROM
tuotteet,
luokat
MISSÄ
tuotteet.categoryID = categories.categoryID;

Sisäisen liittymisen visualisointi Venn-kaavion avulla

Write a Comment

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *