Forskjell mellom Inner Join og Outer Join

Anonim

Inner Join vs Outer Join

Inner join og Outer join er to av SQL-tilkoblingsmetodene som brukes i spørringsbehandling for databaser. De tilhører familien til å delta klausuler (andre to er venstre og høyre tilknytning). Det er imidlertid et Self Join som kan brukes til spesialiserte situasjoner. Formålet med Join er å kombinere felt med de vanlige verdiene til de to tabellene. Disse samlingene kombinerer poster fra flere tabeller i en database. Det skaper resulterende sett, som kan lagres som et annet bord.

Hva er Inner Bli med?

Mest brukte SQL Join-operasjon er Inner Join. Det kan betraktes som standard type tilkobling som brukes i applikasjoner. Innerforeningen bruker samarbeidspartikatet til å kombinere to tabeller. Forutsatt at de to tabellene er A og B, vil sammenføyningsprotikatet sammenligne rader med A og B for å finne ut alle parene som tilfredsstiller predikatet. Kolonneverdier av alle fornøyde rader med A- og B-tabeller kombineres for å skape resultatet. Det kan sees på som først å ta krysset sammen (kartesisk produkt) av alle poster og deretter bare returnere poster som tilfredsstiller tilmeldingsprotikatet. Imidlertid beregnes kartesisk produkt i virkeligheten ikke fordi det er svært ineffektivt. Hash join eller sort-merge join er brukt, i stedet.

Hva er Ytre Bli med ?

I motsetning til, Innerforening, beholder ytre sammenheng alle postene selv om det ikke kan finne en matchende post. Det betyr at ytre sammenføyning trenger en post for å finne en matchende post for at den skal vises i resultatet. I stedet vil det returnere alle postene, men uovertruffen poster vil ha nullverdier. Ytre sammenhenger er delt inn i tre underkategorier. De er igjen ytre sammenføyning, høyre ytre sammenføyning og full ytre sammenføyning. Denne differensieringen er basert på hvilken tabell (venstre tabell, høyre tabell eller begge tabell) rad beholdes når uovertruffen poster blir funnet. Venstre ytre sammenhenger (også kjent som bare venstre sammenføyning) beholder alle poster i venstre bord. Det betyr at selv om antall matchende poster er null, vil det fortsatt ha poster i resultattabellen, men vil ha nullverdier for alle kolonner av B. Med andre ord returneres alle verdier fra venstre tabell med matchende verdier fra høyre tabell (eller nullverdier når det er uovertruffen). Hvis verdier fra flere rader fra venstre bord samsvarer med en enkelt rad fra høyre tabell, vil raden fra høyre tabell gjentas etter behov. Høyre ytre sammenføyning er ganske mye lik venstre ytre sammenheng, men behandling av bord er ærverdig. Det betyr at resultatet vil ha alle rader med riktig bord minst en gang med matchede venstre tabellverdier (og nullverdier for uovertruffen høyre verdier). Full ytre sammenføyning er mer omfattende enn både venstre og høyre ytre sammenføyning. Det resulterer i å kombinere effekten av å påføre både venstre og høyre ytre sammenføyet.

Hva er forskjellen mellom Inner Join og Outer Join?

Inner Join ikke beholder de uovertruffen rader i resultatet, men ytre sammenføyning vil beholde alle postene fra minst ett bord (avhengig av hvilken ytre sammenheng som er brukt). Så det er uønsket at det ikke er noen informasjon som finnes på uovertruffen rader i resultattabellen. Du må alltid bruke en av de ytre leddene (i stedet for indre sammenføyning). Innerforening kan ikke gi et resultat dersom det ikke er funnet noen kamper. Men ytre sammenføyning vil alltid produsere et resulterende bord, selv uten matchende rader. Innerforening vil alltid returnere tabeller med verdier (hvis returnert). Men ytre sammenhenger kan resultere i tabeller med nullverdier.