Inner Join vs Outer Join


I SQL, a bli med brukes til å sammenligne og kombinere - bokstavelig talt bli med - og returnere bestemte rader med data fra to eller flere tabeller i en database. en indre sammenføyning finner og returnerer matchende data fra tabeller, mens en ytre sammenføyning finner og returnerer matchende data og noen forskjellige data fra tabeller.

Inner Bli med

En indre sammenføyning fokuserer på commonality mellom to bord. Når du bruker en indre tilkobling, må det være minst noen matchende data mellom to (eller flere) tabeller som sammenlignes. En indre sammenlegger søker tabeller for samsvarende eller overlappende data. Ved å finne den, kombinerer den indre kombinasjonen og returnerer informasjonen til et nytt bord.

Eksempel på Inner Join

La oss vurdere et felles scenario med to tabeller: produktpriser og mengder. Den vanlige informasjonen i de to tabellene er produktnavn, så det er den logiske kolonnen for å bli med i tabellene . Det er noen produkter som er vanlige i de to tabellene; andre er unike for ett av bordene og har ikke en kamp i den andre tabellen.

En indre fest på Produkter returnerer informasjon om bare de produktene som er vanlige i begge tabellene.

Outer Join

En ytre sammenføyning returnerer et sett med poster (eller rader) som inkluderer hva en indre sammenføyning ville returnere, men inkluderer også andre rader som ingen tilsvarende kamp er funnet i den andre tabellen.

Det er tre typer ytre sammenhenger:

  • Venstre Ytre Bli med (eller Venstre)
  • Høyre Ytre Bli med (eller Høyre Bli med)
  • Full Outer Join (eller Full Join)

Hver av disse ytre sammenhenger refererer til den delen av dataene som sammenlignes, kombineres og returneres. Noen ganger vil nuller bli produsert i denne prosessen, da noen data deles mens andre data ikke er.

Venstre Ytre Bli med

En venstre ytre sammenføyning returnerer alle dataene i Tabell 1 og alle de delte dataene (den indre delen av Venn-diagrammet), men bare de tilsvarende dataene fra Tabell 2, som er den rette sammenføyningen.

Venstre Bli med på eksempel

I vår eksempeldatabase finnes det to produkter - appelsiner og tomater - på "venstre" (prisene bord) som ikke har en tilsvarende oppføring på "høyre" (kvantitetstabellen). I et venstre sammenføyning er disse radene inkludert i resultatsettet med en NULL i kolonnen Quantity. De andre radene i resultatet er de samme som det indre festet.

Høyre Ytre Bli med

En høyre ytre sammenføyning returnerer tabell 2-data og alle de delte dataene, men bare tilsvarende data fra tabell 1, som er den venstre deltakelsen.

Høyre Bli med på eksempel

I likhet med det venstre samlingseksempelet, inneholder utgangen av en høyre ytre sammenføyning alle rader av det indre festet og to rader - brokkoli og squash - fra 'høyre' (mengder bord) som ikke har tilsvarende oppføringer til venstre.

Full Outer Join

En full ytre sammenføyning, eller full sammenføyning, som er ikke støttet av det populære MySQL databasebehandlingssystemet, kombinerer og returnerer alle data fra to eller flere tabeller, uavhengig av om det er delt informasjon. Tenk på en fullstendig tilknytning som bare å duplisere all spesifisert informasjon, men i ett bord, i stedet for flere tabeller. Hvor matchende data mangler, vil nuller bli produsert.

Dette er bare det grunnleggende, men mange ting kan gjøres med tilmeldinger. Det er til og med sammenkomster som kan utelukke andre tilmeldinger!

Video som forklarer Inner vs Outer Joins

Denne videoen forklarer forskjellen mellom ulike typer tilkoblinger. Det er cued opp til å begynne på det punktet hvor diskusjonen om tilmeldinger begynner.

referanser

  • Forskjellen mellom indre og ytre sammenføyning - Stack Overflow
  • SQL Inner Join - Quackit
  • SQL Outer Join - Quackit
  • Bruk Innerforbindelser - Microsoft SQL Server
  • Bruke ytre tilkoblinger - Microsoft SQL Server
  • Visuell representasjon av SQL-tilkoblinger - CodeProject
  • Wikipedia: Bli med (SQL)