Vertailukaavio
Vertailun perusteet | Vasen Outer Join | Oikea Outer Join | Täysi Outer Join |
---|---|---|---|
perustiedot | Kaikki 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-laajennus | Vasemman 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.
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.
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.
Keskeiset erot vasemman, oikean ja koko ulkoisen liittymisen välillä
- 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.
- 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.