Jämförelsediagram
Grunder för jämförelse | Vänster Outer Join | Höger yttre gå med | Fullständig yttre anslutning |
---|---|---|---|
Grundläggande | Alla pjäser i vänstra bordet förblir i resultatet. | Alla pjäserna på rätt bord kvarstår i resultatet. | Alla tuparna från vänster och höger bord kvarstår i resultatet. |
NULL-förlängning | Tavlorna på vänstra bordet som inte har en matchande tupel i rätt tabell utökas med NULL-värde för attribut av det rätta bordet. | Högerna till höger bord som inte har en matchande tupel i vänster tabell utökas med NULL-värde för attribut av det vänstra bordet. | Trummorna i vänster såväl som det rätta bordet som inte har matchande tupler i respektive höger och vänstra bord förlängs med NULL-värde för attribut av de högra och vänstra tabellerna. |
Definition av vänster yttre anslutning
Antag att vi har " Table_A Left Outer Join Table_B ". Så Table_A är vårt vänstra bord som det verkar vara kvar av Left Outer Join- operationen och Table_B är vårt rätta bord.
Initialt skulle den inre föreningen appliceras på tabell_A och tabell_B som kommer att returnera alla matchande tupel från tabell A och B.
Därefter kommer alla tuplar att returneras från Table_A som inte har en matchande tuple i Table_B. Således skulle de resulterande tuplarna vara vadderade med NULL- värden för attributen till det högra tabellen.
Resultatet som erhålls från Vänster Outer Join behåller alla tuparna från vänster bord och endast matchande tuplar från höger bord.
Låt oss diskutera Left Outer Join med ett exempel; vi har två tabeller nedan, studentbord och avdelningsbord .
Nu ska vi tillämpa Vänster Outer Join, på Student och Department Table.
VÄLJ * FRÅN STUDENT VÄNSTER UTGÅENDE JOIN- avdelningen
ON Student. Student_ID = Institution.Student_ID
I förfrågan ovan är tabellen Student det vänstra bordet och bordavdelningen är det rätta bordet. Så enligt Left Outer Join måste resultatet ha alla tuplorna från Studentbordet och bara matchande tupler från avdelningstabellen.
Definition av Right Outer Join
Antag att vi har " Table_A Right Outer Join Table_B ". Så Table_A är vårt vänstra bord som det verkar vara kvar av Right Outer Join operation och Table_B är vårt rätta bord.
Liksom i vänstra yttre sammanslutningen, skulle inledningsvis det inre föreningen appliceras på tabell_A och tabell_B som kommer att returnera all matchande tupel från tabell A och B.
Därefter kommer alla tuplar att returneras från Table_B som inte har en matchande tupel i Table_A. Således skulle de resulterande tuplarna vara vadderade med NULL-värden för attributen i det vänstra bordet.
Därför behåller resultatet som erhålls från det högra yttre förbundet alla tuplarna från rätt bord och endast matchande tuplar från vänstra bordet.
Låt oss diskutera Right Outer Join med ett exempel; ovanför har vi två bord, studentbord och avdelningsbord.
Nu ska vi tillämpa Right Outer Join på Studentbordet och avdelningsbordet.
VÄLJ * FRÅN RÄDDARE FÖR UTBILDNING AV JÄMFÖRARE
ON Student. Student_ID = Institution.Student_ID
I förfrågan ovan är Studentbordet vårt vänstra bord och avdelningstabell är vårt rätta bord. Enligt den högra yttre anslutningsoperationen måste resultatet inkludera alla tuplarna från avdelningsbordet och bara matchande tupler från studentbordet.
Definition av Full Outer Join
Antag att vi har " Table_A Full Outer Join Table_B ". Så Table_A är vårt vänstra bord som det verkar vara kvar av Full Outer Join operation och Table_B är vårt rätta bord.
Full Outer Join är kombinationen av både Vänster Outer Join och Right Outer Join . Ursprungligen appliceras det inre föreningen på Table_A och Table_B för att hämta matchande tuples från båda tabellerna. Därefter sträcker de de tumlarna i Table_A med NULL som inte har en matchande tupel i Table_B. Vidare sträcker de de här tuplarna från tabell_B med NULL som inte har en matchande tupel i tabell_A.
Därför håller Full Outer Join alla tuplar från vänster såväl som rätt bord, tillsammans med matchande tupler i båda tabellerna.
Låt oss diskutera FULL Outer Join med ett exempel; vi har två tabeller ovan, studentbord och avdelningsbord .
Nu ska vi ansöka Full Outer Join på Studentbordet och avdelningsbordet.
VÄLJ * FRÅN STUDIER FULL YTTERLIGA JOIN- avdelningen
ON Student. Student_ID = Institution.Student_ID
I förfrågan ovan är Studentbordet vårt vänstra bord och avdelningsbordet är vårt rätta bord. Enligt Full Outer Join måste resultatet inkludera alla tuplar från båda tabellerna.
Viktiga skillnader mellan vänster, höger och fullständig yttre del
- Resultatet av Left Outer Join har alla stolpar av vänstra bordet. På liknande sätt har resultatet av Right Outer Join alla tuplar på rätt bord. Och resultatet av Full Outer Join har alla tuplar från både vänster och höger bord.
- I vänster yttre sammanslutning utvidgas tuplar av vänstra bord som inte har en matchande tupel i rätt tabell, med Null-värden för attributen till det rätta bordet. Motsatt är fallet för Right Outer Join. Och i Full Outer Join, har tuplarna från vänster och höger bord som inte har matchande tupler i respektive höger och vänstra tabellen utökats med NULL för attributen till höger respektive vänster tabell.
Slutsats:
Ta hand om positionerna för tabellnamn i en fråga. Eftersom positionen för tabellnamn i fråga bestämmer huruvida tabellen skulle betraktas som vänster tabell eller höger tabell.