Forskjellen mellom indre ledd og ytre ledd

Forskjellen mellom indre ledd og ytre ledd
Forskjellen mellom indre ledd og ytre ledd

Video: Forskjellen mellom indre ledd og ytre ledd

Video: Forskjellen mellom indre ledd og ytre ledd
Video: Software Requirement Specification (SRS) Tutorial and EXAMPLE | Functional Requirement Document 2024, Juli
Anonim

Inner Join vs Outer Join

Inner join og Outer join er to av SQL-sammenføyningsmetodene som brukes i spørringsbehandling for databaser. De tilhører familien av join-klausuler (andre to er Venstre og Høyre Joins). Det finnes imidlertid en Self Join som kan brukes i spesialiserte situasjoner. Formålet med Join er å kombinere felt ved å bruke fellesverdiene til de to tabellene. Disse sammenføyningene kombinerer poster fra flere tabeller i en database. Den lager resulterende sett, som kan lagres som en annen tabell.

Hva er Inner Join?

Den mest brukte SQL Join-operasjonen er Inner Join. Det kan betraktes som standard typen sammenføyning som brukes i applikasjoner. Inner join bruk join-predikatet for å kombinere to tabeller. Forutsatt at de to tabellene er A og B, vil sammenføyningspredikatet sammenligne rader med A og B for å finne ut alle parene som tilfredsstiller predikatet. Kolonneverdier for alle tilfredsstilte rader med A- og B-tabeller kombineres for å lage resultatet. Det kan sees på som først å ta krysssammenføyningen (kartesisk produkt) av alle poster og deretter returnere bare postene som tilfredsstiller sammenføyningspredikatet. Imidlertid beregnes ikke kartesisk produkt i virkeligheten fordi det er veldig ineffektivt. Hash join eller sort-merge join brukes i stedet.

Hva er Outer Join?

I motsetning til, Inner join, ytre join beholder alle postene selv om den ikke finner en matchende post. Det betyr at ytre sammenføyning trenger en post for å finne en samsvarende post for at den skal vises i resultatet. I stedet vil den returnere alle postene, men umatchede poster vil ha nullverdier. Ytre skjøter er delt inn i tre underkategorier. De er venstre ytre skjøt, høyre ytre skjøt og full ytre skjøt. Denne differensieringen er basert på hvilken tabells rad (venstre tabell, høyre tabell eller begge tabeller) som beholdes når umatchede poster blir funnet. Venstre ytre sammenføyninger (også kjent som bare venstre sammenføyninger) beholder alle oppføringer for venstre tabell. Det betyr at selv om antallet samsvarende poster er null, vil det fortsatt ha poster i resultattabellen, men vil ha nullverdier for alle kolonnene i B. Med andre ord, alle verdier fra venstre tabell returneres med samsvarende verdier fra høyre. tabell (eller nullverdier når de ikke samsvarer). Hvis verdier fra flere rader fra venstre tabell matches med en enkelt rad fra høyre tabell, vil raden fra høyre tabell gjentas etter behov. Høyre ytre sammenføyning er ganske lik venstre ytre sammenføyning, men behandling av tabeller er æret. Det betyr at resultatet vil ha alle radene i høyre tabell minst én gang med samsvarende venstre tabellverdier (og nullverdier for umatchede høyre verdier). Full ytre skjøt er mer omfattende enn både venstre og høyre ytre skjøt. Det resulterer i å kombinere effekten av å påføre både venstre og høyre ytre sammenføyd.

Hva er forskjellen mellom Inner Join og Outer Join?

Inner Join beholder ikke de umatchede radene i resultatet, men ytre join vil beholde alle postene fra minst én tabell (avhengig av hvilken ytre sammenføyning som er brukt). Så oppførselen med å ikke ha informasjon tilstede på umatchede rader i resultattabellen er uønsket, du må alltid bruke en av de ytre sammenføyningene (i stedet for indre sammenføyninger). Inner join vil kanskje ikke gi et resultat hvis ingen treff blir funnet. Men ytre sammenføyning vil alltid produsere en resulterende tabell, selv uten samsvarende rader. Inner join vil alltid returnere tabeller med verdier (hvis returnert). Men ytre sammenføyninger kan resultere i tabeller med nullverdier.

Anbefalt: