SQLShack (Suomi)

Tässä artikkelissa opitaan SQL usean liittymisen käsite ja vahvistaa oppimistamme melko yksinkertaisilla esimerkeillä, jotka selitetään kuvilla. Relaatiotietokannoissa tiedot tallennetaan taulukoihin. Epäilemättä ja useimmiten tarvitsemme tulosjoukon, joka muodostetaan yhdistämällä useiden taulukoiden tiedot. Liitosten avulla voimme yhdistää kahden tai useamman taulukon tietoja, jotta voimme yhdistää taulukoiden tiedot, jotta voimme helposti hakea tietoja useista taulukoista. Voit kysyä itseltäsi, kuinka monta erityyppistä liittymistä on olemassa SQL Serverissä. Vastaus on, että SQL Serverissä on neljä päätyyppiä liittymiä. Ensinnäkin kuvailemme niitä lyhyesti Venn-kaavion piirrosten avulla:

  • Sisäinen liittyminen palauttaa molemmissa taulukoissa vastaavat rivit

  • Vasen liitos palauttaa vasemman taulukon kaikki rivit

  • Oikea liitos palauttaa kaikki oikean taulukon rivit

  • Täydellinen liittyminen palauttaa molempien taulukoiden kokonaiset rivit

Jos sinulla ei ole tietoa Tietoja SQL-palvelimen SQL-liittymiskäsitteestä on SQL Join -tyyppien yleiskatsaus ja opetusartikkeli.

Tämän SQL-liitostyyppien lyhyen selityksen jälkeen käymme läpi useita liittymisiä.

Mitä ovat SQL: n useita liittymisiä?

Useita liittymiä voidaan kuvata seuraavasti; multiple join on kysely, joka sisältää samat tai erilaiset liitostyypit, joita käytetään useammin kuin kerran. Siten saamme kyvyn yhdistää useita tietotaulukoita relaatiotietokantaan liittyvien ongelmien ratkaisemiseksi.

Esimerkkiskenaario

Green-Tree-yritys käynnisti uuden kampanjan uudelle vuodelle ja teki erilaisia tarjouksia online-asiakkailleen. Kampanjansa seurauksena he onnistuivat muuttamaan joitain tarjouksia myyntiin. Seuraavissa esimerkeissä paljastamme Green-Tree-yrityksen uuden vuoden kampanjatiedot.

Yritys tallentaa nämä kampanjatietojen tiedot seuraaviin taulukoihin. Luomme nyt nämä taulukot seuraavan kyselyn avulla ja täytämme ne tietyillä nuketiedoilla:

Kuinka SQL-usean yhdistäminen toimii?

Liiketoimintaongelma: Mitkä asiakkaat olivat kiinnostuneita tästä uudesta vuodesta kampanja?

Vastaamiseksi tähän kysymykseen meidän on selvitettävä kaikkien taulukoiden vastaavat rivit, koska jotkut asiakkaat eivät saaneet sähköpostitarjousta, ja joitain tarjouksia ei voitu muuntaa myynniksi. Seuraava Venn-kaavio auttaa meitä selvittämään tarvitsemamme rivit. Lyhyesti sanottuna tämän kyselyn tuloksen tulisi olla kyselyn kaikkien taulukoiden leikkaavat rivit. Harmaalla alueella määritetään nämä rivit Venn-kaaviossa:

SQL-useita liittymiä koskeva lähestymistapa auttaa meitä liittymään online-asiakkaisiin , tilaukset ja myyntitaulukot. Kuten Venn-kaaviosta käy ilmi, meidän on sovitettava kaikkien taulukoiden rivit. Tästä syystä yhdistämme kaikki taulukot sisäiseen liittymislausekkeeseen. Seuraava kysely palauttaa haluamasi tulosjoukon ja vastaa kysymykseen:

1
2
3
4
5
6
7
8

VALITSE asiakkaan nimi, mukautus, asiakaspalvelu, salestotal
online-asiakkailta AS oc
INNER JOIN
tilaukset AS o
ON oc.customerid = o.customerid
SISÄINEN LIITTYMINEN
myynti AS s
ON o.orderId = s.orderId

Aluksi analysoimme kyselyn. Sisäinen liittymislauseke, joka on online-asiakkaiden ja tilaustaulukoiden välillä, johti näiden kahden taulukon väliin sovitetut rivit. Toinen sisäinen liittymislauseke, joka yhdistää myyntitaulukon, johti sovitettuihin riveihin edellisestä tulosjoukosta. Seuraava värillisten taulukoiden kuva auttaa meitä ymmärtämään yhdistettyjen taulukoiden tietojen vastaavuuden kyselyssä. Keltaiset rivit määrittävät vastaavien tietojen online-asiakkaiden ja tilausten välillä. Toisaalta myyntitaulukoissa on vain sinisiä rivejä, joten kyselytulos on sinisiä rivejä:

Kyselyn tulos näyttää tältä:

Erilaisten liitostyyppien käyttö SQL-moniliitoksissa

Yritysongelma: Mitkä tarjoukset eivät voineet muuttua myyniksi?

Voimme käyttää erityyppisiä liittymiä yhdessä kyselyssä, jotta voimme selviytyä erilaisista relaatiotietokantaan liittyvistä ongelmista.Tässä esimerkissä tarvitaan kaikki tilaustaulukon rivit, jotka on sovitettu onlinecustomers-taulukoihin. Toisaalta näitä rivejä ei ole myyntitaulukossa. Seuraava Venn-kaavio auttaa meitä selvittämään tarvitsemamme rivit. Harmaalla alueella on rivejä, jotka ovat kyselyn tulos:

Ensimmäisessä vaiheessa meidän tulisi yhdistää online-asiakkaat ja tilaa taulukot sisäisen liittymislausekkeen kautta, koska sisäinen liittäminen palauttaa kaikki online-asiakkaiden ja tilaustaulukoiden väliset sovitetut rivit. Toisessa vaiheessa yhdistämme tilaustaulukon myyntitaulukkoon vasemman liitoksen kautta ja suodatamme sitten nolla-arvot, koska meidän on poistettava myyntitaulukon tallentamat rivit:

1
2
3
4
5
6
7
8
9

SELECT asiakasnimi, customercity, asiakasposti, ordertotal, salestotal
FROM onlinecustomers AS c
INNER JOIN
tilaukset AS o
PÄÄLLÄ c.customerid = o.customerid
VASEN LIITTYMINEN
myynti AS s
ON o.orderId = s.orderId
MISSÄ s.salesId IS NULL

Kyselyn tulos tulee näyttävät tältä:

Tietovisa

Q uestion: Luo oikea kysely alla olevan Venn-kaavion mukaisesti.

Vastaus: Kuten olemme oppineet, täysi liittyminen sallii palauttaa kaikki rivit yhdistetyistä taulukoista. Vastattu kysely on seuraavanlainen:

1
2
3
4
5
6
7
8

SELECT customerName, customercity, customermail, ordertotal, salestotal
FROM onlinecustomers AS c
FULL JOIN
tilaa AS o
ON c.customerid = o.customerid
FULL JOIN
myynti AS
ON o.orderId = s.orderId

Johtopäätös

Tässä artikkelissa keskityimme SQL multiple joins -lähestymistapaan ja opimme sen yksityiskohtaisten esimerkkien avulla. Useiden liittymien avulla voimme yhdistää enemmän kuin kaksi taulukkoa, jotta voimme ratkaista relaatiotietokantajärjestelmän eri ongelmat. Lisäksi näimme, kuinka voisimme käyttää erilaisia liitostyyppejä yhdessä kyselyssä.

  • Kirjoittaja
  • Viimeisimmät viestit
Esat Erkec on SQL Server -ammattilainen, joka aloitti uransa yli 8 vuotta sitten ohjelmistokehittäjänä. Hän on SQL Server Microsoftin sertifioitujen ratkaisujen asiantuntija.
Suurin osa urastaan on keskittynyt SQL Server -tietokantojen hallintaan ja kehittämiseen. Hänen nykyiset kiinnostuksen kohteet ovat tietokantojen hallinta ja liiketoimintatiedon hallinta. Löydät hänet LinkedInistä.
Näytä kaikki Esat Erkecin viestit

Esat Erkecin uusimmat viestit (katso kaikki)
  • SQL-ohjelmoinnin käytön aloittaminen – 3. helmikuuta 2021
  • Suorituksen lukeminen suunnitelma kaikilla yksityiskohdilla – 28. tammikuuta 2021
  • SQL SELECT TOP -lausekkeen yleiskatsaus ja esimerkkejä – 25. tammikuuta 2021

Leave a Reply

Vastaa

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