Join on tyypillinen nimimerkki ja komentoelementti, joka ilmestyy aika ajoin käsiteltäessä SQL:ää. Join-lause helpottaa tietueiden yhdistämistä eri taulukoista tiedonkeruussa. Liittäminen luo taulukon, jota voidaan käyttää yksinään tai yhdistettynä keskenään. Siksi on suositeltavaa ymmärtää nämä liitokset ja niiden väliset erot määrittääksesi tietyn liitoksen sekä sen, pitäisikö yksilöllisissä tapauksissa valita oikea vai vasen.
Vasen liitos vs oikea liittyminen
Ero vasemman liitoksen ja oikean liitoksen välillä on se, että yhteensopimattomien merkintöjen sisällyttäminen on ensisijainen ero näiden liitostyyppien välillä. LEFT JOIN käsittelee kaikki merkinnät vasemmalta puolelta sekä parilliset rivit oikeasta taulukosta, kun taas RIGHT JOIN toimittaa kaikki rivit oikealta sekä ristiriitaiset rivit vasemmasta paneelista.
Vaikka taulukon oikealla puolella ei ole vastaavuutta, SQL LEFT -prosessi vastaanottaa kaikki merkinnät vasemmasta taulukosta. Tämä tarkoittaa, että kun ON-lause sisältää 0 (nolla) merkintää taulukon oikealla puolella, liitos palauttaisi silti tietueen, jossa on NULL jokaisessa päätaulukon kentässä. Tämä tarkoittaa, että vasen liitos toimittaa kaikki tiedot ensin vasemmasta taulukosta sekä kaikki vastaavat arvot oikeasta taulukosta tai NULL, jos sopivaa liitospredikaattia ei ole.
Oikea liitos sen sijaan huomaa, että jopa vasemmassa taulukossa SQL RIGHT vastaanottaa ja lähettää kaikki merkinnät oikeasta taulukosta. Tämä tarkoittaa, että vaikka ON-lause sisältää 0 (nolla) merkintää vasemmassa tietokannassa, liitos tuottaisi silti rivin, jossa on NULL-arvo jokaisessa vasemman taulukon kentässä, aivan kuten vasen liitos, mutta päinvastoin.
Tämä tarkoittaa, että oikea liitos toimittaa kaikki tiedot oikeasta taulukosta sekä kaikki hyväksytyt arvot taulukoista, tai NULL, jos tälle toiminnolle ei ole sovittavaa liitospredikaattia.
Vertailutaulukko vasemman ja oikean liitoksen välillä
Vertailuparametrit | Vasen Liity | Oikea Liity |
Käyttö | Se yhdistää useita taulukoita ja tarjoaa kaikki tietueet vasemmasta taulukosta sekä vastaavat rivit oikealta. | Se yhdistää useita taulukoita ja toimittaa kaikki tiedot oikeasta taulukosta sekä vastaavat rivit ensin vasemmasta taulukosta. |
Kyselyn suoritus | Vasemman liitoksen sisältävän kyselyn toteutuksen aikana vastaanotetaan ensin kaikki taulukoiden merkinnät, minkä jälkeen saadaan pinotuilla silmukoilla taulukon oikeanpuoleisten sarakkeiden arvojen täsmäystiedot ja NULL-arvo korvataan muilla täsmäämättömillä tiedoilla. | Oikean liitoksen sisältävän kyselyn toteutuksen aikana hankitaan ensin kaikki oikeanpuoleisen taulukon tiedot ja sen jälkeen kerätään pinottujen silmukoiden avulla vasemman taulukon sarakkeen arvojen täsmäytystietueet. |
Tulosjoukko | Tulosjoukon arvo on NULL tai nolla, jos oikeasta taulukosta ei löydy vastaavaa dataa. | Tulosjoukon arvo on NULL tai nolla, jos vastaavaa dataa ei löydy vasemmanpuoleisesta taulukosta. |
Synonyymi termi | LEFT OUTTER JOIN | OIKEA ULKOLIITTYMINEN |
Syntaksi | VALITSE sarakkeen_nimi(t) FROM taulukosta1 LEFT JOIN taulukko2ON taulukko1.sarakkeen_nimi = taulukko2.sarakkeen_nimi; | VALITSE sarakkeen_nimi(t) FROM taulukosta1 OIKEALLE LIITTYMINEN taulukko2 ON taulukko1.sarakkeen_nimi = taulukko2.sarakkeen_nimi; |
Mikä on Left Join?
Jos haluat yhdistää tiedot kahdesta tietokannasta riippuen sarakkeesta, joka sisältää vastaavat arvot, käytämme JOIN-komentoa SQL:ssä. Jos sinulla on esimerkiksi ollut taulukko, joka sisältää asiakastiedot (asiakastunnus, etunimi, tunniste jne.) ja sitten toinen taulukko, joka sisältää tilaustiedot tietyltä ajalta (tapahtumatunnus, aika, asiakastunnus, tuotetunnus jne.).), voit linkittää nämä kaksi tietojoukkoa käyttämällä sarakkeita, jotka sisältävät asiakastunnusnumerot. Tämä antaa sinulle tilaus- ja asiakastiedot jokaisesta asiakkaasta, ja vasemmistoliitoslausekkeella on olennainen rooli tämän toiminnon suorittamisessa.
Katsotaanpa vasemman liitoksen syntaksia ymmärtääksemme sen hyödyllisyyden oikein:
SELECT sarakkeen_nimet
taulukosta 1
LEFT JOIN taulukko2
PÄÄLLÄ taulukko1.sarakkeen_nimi = taulukko2.sarakkeen_nimi
Aluksi tietokannat tutkivat jokaisen vasemmanpuoleisen taulukon merkinnän ja etsivät sitten osuman oikeanpuoleisesta taulukosta linkitetyistä sarakkeista riippuen. Jos osuma löytyy, oikeanpuoleisen taulukon tiedot lisätään vasemman taulukon vastaavalle riville. Jos vastaavia löytöjä on useita, vasemmanpuoleisen taulukon sarake monistetaan sisältämään kaikki tiedot suoraan oikeanpuoleisesta taulukosta. Jos vastaavuutta ei löydy, se säilyttää rivin kuten vasemmasta taulukosta ja lisää sitten NULL:n oikean taulukon vastaaviin sarakkeisiin.
Mikä on oikea liittyminen?
Suoraan sanottuna oikeanpuoleinen liitostoiminto on hyvin samanlainen kuin vasen liitos, juuri päinvastoin. Paremman ymmärtämisen vuoksi käymme läpi syntaksianalyysin ja oikean liitoksen yleinen käyttö sekä linkki vasempaan taulukkoon ovat tärkeitä tässä tapauksessa.
Oikea SQL-liitos toimittaa kaikki tiedot oikean taulukon riveiltä. Se sisältää myös vahvistetut arvot vasemmasta taulukosta; kuitenkin, jos osumia ei löydy molemmista tietokannoista, se toimittaa NULL-arvon. Oikeanpuoleiset liitokset ovat pohjimmiltaan hyvin samanlaisia kuin vasen liitokset siinä mielessä, että ne hakevat kaikki rivit ulos RIGHT JOIN -lauseessa määritetystä taulukosta, mutta vain vastaavat rivit FROM-lauseessa määritetystä taulukosta.
RIGHT JOIN -toimintoa käytetään harvoin, koska RIGHT JOINin sisältö voidaan saada yksinkertaisesti vaihtamalla kahden yhdistetyn taulukon nimiä LEFT JOIN -liitännässä.
Perinne käyttää aina LEFT JOINia syntyy todennäköisimmin siksi, että kyselyt on helpompi ymmärtää ja todentaa, vaikka ei ole pakottavaa syytä välttää RIGHT JOIN -toimintoa. On syytä mainita, että LEFT JOIN ja RIGHT JOIN voidaan ilmaista myös nimellä LEFT OUTTER JOIN sekä RIGHT OUTTER JOIN.
Oikean liitoksen syntaksi kuvataan tarkemmin alla. Oikean ja vasemman liitoksen toiminnot ovat identtisiä, mutta käänteisessä järjestyksessä:
VALITSE sarakkeen_nimi(t) FROM table1RIGHT JOIN taulukko2ON taulukko1.sarakkeen_nimi = taulukko2.sarakkeen_nimi
Tärkeimmät erot vasemman liitoksen ja oikean liitoksen välillä
Johtopäätös
Kun olet vuorovaikutuksessa näiden eri liitosten kanssa, on tärkeää tietää, että vasemmassa uloimmassa liitoksessa kaikki taulukon vasemmanpuoleiset sarakkeet näkyvät tietokannassa. Tulokset näkyvät riippumatta siitä, ovatko vastaavat sarakkeet saatavilla oikeassa taulukossa. Ei ole väliä, käytätkö vasenta vai oikeaa ulkoliitosta, koska seuraukset ovat samat. Oikean ulkopuolisen liitoksen prosessitiedot ovat samat kuin vasemmanpuoleisen ulkoliitoksen antamat tiedot.