SQL JOIN og forskjellige typer JOIN-er
Hva er en SQL JOIN
og hva er forskjellige typer?
236
3
Hva er en SQL JOIN
og hva er forskjellige typer?
En illustrasjon fra W3schools:
INNER JOIN - Bare poster som samsvarer med betingelsen i begge tabellene]1
LEFT JOIN - Alle poster fra tabell 1 i forbindelse med poster som samsvarer med betingelsen i tabell 2]2
RIGHT JOIN - Alle poster fra tabell 2 i forbindelse med poster fra tabell 1 som samsvarer med betingelsen]3
FULL OUTER JOIN - Kombinasjon av både venstre og høyre ytre sammenføyning som samsvarer med ON-klausulen, men som bevarer begge tabellene]4
Hva er
SQL JOIN
?SQL JOIN er en metode for å hente data fra to eller flere databasetabeller.
Hva er de forskjellige
SQL JOIN
ene?Det finnes totalt fem
JOIN
er. De er:JOIN eller INNER JOIN:
I denne typen
JOIN
får vi alle poster som samsvarer med betingelsen i begge tabeller, og poster i begge tabeller som ikke samsvarer, rapporteres ikke.Med andre ord er
INNER JOIN
basert på det enkle faktum at: KUN de samsvarende oppføringene i BEGGE tabellene SKAL vises.Merk at en
JOIN
uten andreJOIN
-nøkkelord (somINNER
,OUTER
,LEFT
osv.) er enINNER JOIN
. Med andre ord,JOIN
er et syntaktisk sukker forINNER JOIN
(se: https://stackoverflow.com/questions/565620/difference-between-join-and-inner-join).OUTER JOIN:
OUTER JOIN` henter
Enten, de matchede radene fra den ene tabellen og alle radene i den andre tabellen. eller alle rader i alle tabeller (det spiller ingen rolle om det er samsvar eller ikke).
Det finnes tre typer Outer Join:
2.1 LEFT OUTER JOIN eller LEFT JOIN.
Denne sammenføyningen returnerer alle radene fra den venstre tabellen i forbindelse med de samsvarende radene fra den høyre tabell. Hvis det ikke er noen kolonner som samsvarer i den høyre tabellen, returneres
NULL
-verdier.2.2 RIGHT OUTER JOIN eller RIGHT JOIN****.
Denne
JOIN
returnerer alle radene fra den høyre tabellen sammen med de samsvarende radene fra den venstre tabellen. venstre tabell. Hvis det ikke er noen kolonner som samsvarer i den venstre tabellen, returneresNULL
-verdier.2.3 FULL OUTER JOIN eller FULL JOIN.
Denne
JOIN
kombinererLEFT OUTER JOIN
ogRIGHT OUTER JOIN
. Den returnerer rader fra en av tabellene når betingelsene er oppfylt, og returnererNULL
-verdien når det ikke er samsvar.Med andre ord er
OUTER JOIN
basert på det faktum at: KUN de samsvarende oppføringene i EN AV tabellene (RIGHT eller LEFT) eller BEGGE tabellene (FULL) SKAL være oppført.NATURAL JOIN:
Det er basert på de to betingelsene:
JOIN
er laget på alle kolonnene med samme navn for likhet.Dette ser ut til å være mer av teoretisk karakter, og som et resultat (sannsynligvis) de fleste DBMS-er ikke engang gidder å støtte dette.
CROSS JOIN:
Det er det kartesiske produktet av de to involverte tabellene. Resultatet av en
CROSS JOIN
vil ikke gi mening i de fleste situasjoner. i de fleste situasjoner. Dessuten trenger vi ikke dette i det hele tatt (eller trenger minst, for å være presis).SELF JOIN:
Det er ikke en annen form for
JOIN
, snarere er det enJOIN
(INNER
,OUTER
osv.) av en tabell til seg selv.JOIN-er basert på operatorer
Avhengig av operatoren som brukes for en
JOIN
-klausul, kan det være to typerJOIN
er. Disse erEqui JOIN
Theta JOIN
Equi JOIN:
For hvilken som helst
JOIN
-type (INNER
,OUTER
osv.), hvis vi KUN bruker likhetsoperatoren (=), sier vi atJOIN
er enEQUI JOIN
.Theta JOIN:
Dette er det samme som
EQUI JOIN
, men det tillater alle andre operatorer som >, = osv.Definisjon:
JOINS er en måte å søke på data som kombineres fra flere tabeller samtidig.
Typer av JOINS:
Når det gjelder RDBMS er det 5 typer sammenføyninger:
Equi-Join: Kombinerer vanlige poster fra to tabeller basert på likhetstilstand. Teknisk sett gjøres Join ved å bruke likhetsoperatoren (=) for å sammenligne verdiene til primærnøkkelen i en tabell og fremmednøkkelverdiene i en annen tabell, og dermed inkluderer resultatsettet felles (matchede) poster fra begge tabellene. For implementering, se INNER-JOIN.
Natural-Join: Dette er en forbedret versjon av Equi-Join, der SELECT operasjonen utelater dupliserte kolonner. For implementering, se INNER-JOIN.
Non-Equi-Join: Det motsatte av Equi-join der sammenføyningsbetingelsen er andre operatorer enn equal operator(=), f.eks. !=, =, >, < eller BETWEEN osv. For implementering, se INNER-JOIN.
Self-Join:: En tilpasset oppførsel av sammenføyning der en tabell kombineres med seg selv; Dette er vanligvis nødvendig for spørring av selvrefererende tabeller (eller Unary-relasjonsenhet). For implementering, se INNER-JOINs.
Kartesisk produkt:** Det krysskobler alle postene i begge tabellene uten noen betingelse. Teknisk sett returnerer den resultatsettet av en spørring uten WHERE-klausul.
I henhold til SQL-bekymring og fremgang er det tre typer sammenføyninger, og alle RDBMS-sammenføyninger kan oppnås ved hjelp av disse typer sammenføyninger.
INNER-JOIN: Den fusjonerer (eller kombinerer) matchede rader fra to tabeller. Matchingen gjøres basert på vanlige kolonner i tabeller og deres sammenligningsoperasjon. Hvis likhetsbasert tilstand da: EQUI-JOIN utført, ellers Non-EQUI-Join.
OUTER-JOIN: Den slår sammen (eller kombinerer) matchede rader fra to tabeller og umatchede rader med NULL-verdier. Kan imidlertid tilpasse valg av umatchede rader, f.eks. velge umatchet rad fra første tabell eller andre tabell etter undertyper: LEFT OUTER JOIN og RIGHT OUTER JOIN.
2.1. LEFT Outer JOIN (også kjent som LEFT-JOIN): Returnerer bare matchede rader fra to tabeller og umatchede fra LEFT-tabellen (dvs. den første tabellen).
2.2. RIGHT Outer JOIN (også kjent som RIGHT-JOIN): Returnerer bare matchede rader fra to tabeller og umatchede fra HØYRE tabell.
2.3. FULL OUTER JOIN (også kjent som OUTER JOIN): Returnerer matchede og umatchede fra begge tabeller.
CROSS-JOIN: Denne koblingen slår ikke sammen/kombinerer, men utfører i stedet kartesisk produkt.
[skriv inn bildebeskrivelse her][1]]. Merk: Self-JOIN kan oppnås ved enten INNER-JOIN, OUTER-JOIN og CROSS-JOIN basert på krav, men tabellen må sammenføyes med seg selv.
[For mer informasjon:][2] [For mer informasjon:][2] **[For mer informasjon:][3
Eksempler:
1.1: INNER-JOIN: Equi-join-implementering.
1.2: INNER-JOIN: Implementering av Natural-JOIN **1.3: INNER-JOIN: Implementering av Natural-JOIN
1.3: INNER-JOIN med NON-Equi-join-implementering**.