Suositeltava, 2024

Toimituksen Valinta

Ero vasemman, oikean ja täydellisen ulkoliiton välillä

Aiemmin olemme keskustelleet sisäisen liittymän ja ulkoisen liittymän välisistä eroista, joissa olemme tarkastelleet ulkoisen liiton tyyppejä. Outer Join on se, joka säilyttää sekvenssit tuloksessa, joka olisi menetetty, kun Liity toiminto. Tässä artikkelissa; keskustelemme eroista Outer Joinin välillä. Outer Join on kolme eri tyyppiä; Vasen Outer Join, oikea Outer Join ja Full Outer Join. Vasen, oikea ja koko ulkoliitto eroavat toteutussuunnitelmastaan ​​ja saaduista tuloksista. Voimme jättää ulkoisen sanan vasemmalta, oikealta ja koko ulkoisesta liittymästä. Tarkastellaan vasemman, oikean ja täyden ulomman liittymisen eroja alla olevan vertailukaavion avulla.

Vertailukaavio

Vertailun perusteetVasen Outer JoinOikea Outer JoinTäysi Outer Join
perustiedotKaikki vasemman pöydän sarakkeet jäävät tulokseen.Kaikki oikean pöydän sarjat jäävät tulokseen.Kaikki vasemman ja oikean pöydän sarjat jäävät tulokseen.
NULL-laajennusVasemman pöydän tupleja, joissa ei ole oikeaa taulukkoa oikeassa taulukossa, laajennetaan NULL-arvolla oikean taulukon määritteille.Oikean taulukon sarakkeita, joissa ei ole vasemmanpuoleisessa taulukossa olevaa vastaavaa numeroa, laajennetaan NULL-arvolla vasemman pöydän attribuuteille.
Vasemman ja oikean taulukon sarakkeet, joissa ei ole vastaavia tupakoita oikeassa ja vasemmassa taulukossa, laajennetaan NULL-arvolla oikean ja vasemman taulukon attribuuteille.

Määritelmä vasemmassa ulkoliitossa

Oletetaan, että meillä on ” Table_A Left Outer Join Table_B ”. Joten Table_A on vasemmanpuoleinen taulukko, koska se näkyy vasemmanpuoleisen liittooperaation vasemmalla puolella ja Table_B on meidän oikea pöytä.

Aluksi sisäistä liittymistä sovellettaisiin Table_A: ssa ja Table_B: ssä, joka palauttaa kaikki vastaavan tuplen taulukosta A ja B.

Seuraavaksi se palauttaa taulukon_A kaikki tuplat, joilla ei ole vastaavaa tuplea taulukossa_B. Tällöin tuloksena olevat sekvenssit olisi pehmustettu NULL- arvoilla oikean taulukon attribuutteja varten.

Näin ollen vasemmanpuoleisesta liittymästä saatu tulos säilyttää kaikki sarakkeet vasemmalta pöydältä ja vastaavat vain oikeat taulukot oikealta taulukolta.

Keskustelkaa vasemmasta ulkoisesta liittymästä esimerkin kanssa; meillä on kaksi taulukkoa, opiskelijataulukko ja osastotaulukko.

Nyt sovellamme vasemmanpuoleista liittymistä opiskelija- ja osastotaulukkoon.

SELECT * FROM Student LEFT OUTER JOIN Osasto
ON Opiskelija. Opiskelija_ID = Osasto.Kulttuuri_ID

Yllä olevassa kyselyssä taulukko Opiskelija on vasemman pöydän ja taulukon osasto. Niinpä vasemmanpuoleisen liittymän mukaan tuloksen on oltava kaikki taulukon Student-taulukon sarakkeet ja vain vastaavat taulukot osastotaulukosta.

Noudata vasemmanpuoleisen liiton tuloksia; Siinä on kaikki Student-taulukon sarakkeet sekä opiskelija- ja osastotaulukon vastaavat sarjat. Jimmyn opiskelija_id, Joseph Harry of Student-taulukosta, ei ollut osastopöydässä. Näin ollen Jimmyn, Joseph Harryn, osastotaulukon attribuuttiarvot laajennetaan NULL: iin.

Määritelmä Outer Join

Oletetaan, että meillä on ” Table_A Outer Outer Join Table_B ”. Joten Table_A on meidän vasemmanpuoleinen taulukko, koska se näkyy oikealla Outer Join -toiminnolla vasemmalla ja Table_B on meidän oikea pöytä.

Kuten vasemmanpuoleisessa liittymässä, sisäistä liittymistä sovellettaisiin aluksi Table_A: ssa ja Table_B: ssä, joka palauttaa kaikki vastaavat sarakkeet taulukosta A ja B.

Seuraavaksi se palauttaa taulukon_B kaikki sarjat, joilla ei ole vastaavaa tuplea taulukossa_A. Tällöin tuloksena olevat tuplat olisi pehmustettu NULL-arvoilla vasemman pöydän attribuutteja varten.

Näin ollen oikeanpuoleisesta liitännästä saatu tulos säilyttää kaikki oikeat taulukot oikealta taulukolta ja vastaavat vain vasemman pöydän sarjat.

Keskustelkaa oikeanpuoleisesta liittymisestä esimerkin kanssa; yllä on kaksi taulukkoa, opiskelijataulukko ja osastotaulukko.

Nyt sovellamme oikeanpuoleista liittymistä opiskelijataulukkoon ja osastotaulukkoon.

SELECT * FROM Student RIGHT OUTER JOIN Osastolta
ON Opiskelija. Opiskelija_ID = Osasto.Kulttuuri_ID

Yllä olevassa kyselyssä opiskelijataulukko on meidän vasemmanpuoleinen pöytä ja osasto-taulukko on oikea taulukko. Outer Outer Join -toiminnon mukaan tuloksen on sisällettävä kaikki osastopöydän sarjat ja vain vastaavia tupleja Student-taulukosta.

Huomioi oikean ulomman liitoksen tulos; Siinä on kaikki osastopöydän sarakkeet sekä vastaavat sekä opiskelija- että osastotaulukon sarjat. Student_ID 10536 ja 00954, osastotaulukko, eivät ole mukana Student-taulukossa. Näin ollen Name for Student_ID 10536: n ja 00954: n attribuuttiarvo laajennetaan NULL: iin.

Määritelmä Full Outer liittyä

Oletetaan, että meillä on ” Table_A Full Outer Join Table_B ”. Joten Table_A on meidän vasemmanpuoleinen taulukko, koska se näkyy vasemmalla Full Outer Join -toiminnolla ja Table_B on meidän oikea pöytä.

Full Outer Join on molempien yhdistelmä, vasen ulkoinen liittyminen ja oikea ulkoliitto . Aluksi se käyttää sisäistä liittymistä Table_A: ssa ja Table_B : ssä hakemaan vastaavat taulukot molemmista taulukoista. Sitten se laajentaa taulukon_A sarakkeita NULLilla, joilla ei ole vastaavaa numeroa taulukossa_B. Lisäksi se laajentaa taulukon_B sarakkeita NULL: llä, joilla ei ole vastaavaa tuplaa taulukossa_A.

Näin ollen Full Outer Join säilyttää kaikki vasemman ja oikean taulukon sarjat sekä molempien taulukkojen vastaavat sarjat.

Keskustelkaa FULL Outer Joinista esimerkin kanssa; Yllä on kaksi taulukkoa, opiskelijataulukko ja osastotaulukko.

Nyt sovellamme Full Outer Join opiskelija-pöydälle ja osastotaulukolle.

SELECT * FROM Student FULL OUTER JOIN Osasto
ON Opiskelija. Opiskelija_ID = Osasto.Kulttuuri_ID

Yllä olevassa kyselyssä opiskelijataulukko on vasemmanpuoleinen pöytä ja osastotaulukko on oikea taulukko. Full Outer Joinin mukaan tuloksen tulee sisältää kaikki taulukot molemmista sarjoista.

Huomioi tulos, joka on saatu täydestä ulommasta liittymästä; Siinä on kaikki opiskelija- ja osastotaulukon sarjat sekä opiskelija- ja osastotaulukon vastaavat sarjat. Jimmyn opiskelija_id , Joseph Harry eli 10026, 02256, 56362 opiskelijataulukosta, ei ollut osastotaulukossa . Näin ollen Jimmyn, Joseph Harryn, osastotaulukon attribuuttiarvot laajennetaan NULL: iin . Opiskelija_ID 10536 ja 00954, osastotaulukkoa, eivät ole Student_ID-sarakkeessa Student-taulukossa. Näin ollen Student_ID 10536: n ja 00954: n nimi-attribuutin attribuuttiarvo laajennetaan NULL: iin .

Keskeiset erot vasemman, oikean ja koko ulkoisen liittymisen välillä

  1. Vasemman liitännän tuloksena on kaikki vasemman pöydän sarjat. Samoin oikean ulomman liittymän tuloksena on kaikki oikean pöydän sarjat. Täyden ulkoisen liiton tuloksena on kaikki sekvenssit sekä vasemmasta että oikeasta taulukosta.
  2. Vasemmanpuoleisessa liittymässä vasemman pöydän sarakkeita, joissa ei ole oikeaa taulukkoa oikeassa taulukossa, laajennetaan Null-arvoilla oikean pöydän attribuutteihin. Vastapäätä on oikea Outer Join. Ja koko ulkoisessa liittymässä vasemman ja oikean taulukon tupleja, joilla ei ole vastaavia tuppeja oikeassa ja vasemmassa taulukossa, laajennetaan NULL: lla vastaavasti oikean ja vasemman taulukon määritteisiin.

johtopäätös:

Huolehdi taulukon nimien sijainnista kyselyssä. Kun taulukon nimen sijainti kyselyssä päättää, pidetäänkö taulukkoa vasemman pöydän tai oikean taulukon muodossa.

Top