Forskellen mellem indre sammenføjning og ydre sammenføjning

Forskellen mellem indre sammenføjning og ydre sammenføjning
Forskellen mellem indre sammenføjning og ydre sammenføjning

Video: Forskellen mellem indre sammenføjning og ydre sammenføjning

Video: Forskellen mellem indre sammenføjning og ydre sammenføjning
Video: Демистификация гормонов: Реальность, скрывающаяся за гендерными гормонами 2024, December
Anonim

Inner Join vs Outer Join

Inner join og Outer join er to af SQL-sammenføjningsmetoderne, der bruges til forespørgselsbehandling til databaser. De tilhører familien af join-klausuler (andre to er Venstre og Højre Joins). Der er dog en Self Join, som kan bruges til specialiserede situationer. Formålet med Join er at kombinere felter ved hjælp af de fælles værdier til de to tabeller. Disse joinforbindelser kombinerer poster fra flere tabeller i en database. Det opretter resulterende sæt, som kan gemmes som en anden tabel.

Hvad er Inner Join?

Den mest almindeligt anvendte SQL Join-operation er Inner Join. Det kan betragtes som standardtypen for join, der bruges i applikationer. Inner join brug join-prædikatet til at kombinere to tabeller. Hvis vi antager, at de to tabeller er A og B, så vil join-prædikatet sammenligne rækker af A og B for at finde ud af alle de par, der opfylder prædikatet. Kolonneværdier for alle tilfredse rækker af A- og B-tabeller kombineres for at skabe resultatet. Det kan ses som først at tage cross join (kartesisk produkt) af alle poster og derefter kun returnere de poster, der opfylder join-prædikatet. Men i virkeligheden er kartesisk produkt ikke beregnet, fordi det er meget ineffektivt. Hash join eller sort-merge join bruges i stedet.

Hvad er Outer Join?

I modsætning til, Inner join, outer join beholder alle registreringerne, selvom den ikke kan finde en matchende post. Det betyder, at ydre sammenføjning skal have en post for at finde en matchende post, for at den kan vises i resultatet. I stedet vil det returnere alle posterne, men umatchede poster vil have nulværdier. Ydre sammenføjninger er opdelt i tre underkategorier. De er venstre udvendig sammenføjning, højre udvendig sammenføjning og fuld udvendig sammenføjning. Denne differentiering er baseret på hvilken tabels (venstre tabel, højre tabel eller begge tabeller) række bevares, når der findes umatchede poster. Venstre ydre joinforbindelser (også kendt som blot venstre joinforbindelse) bevarer alle poster i den venstre tabel. Det betyder, at selvom antallet matchende poster er nul, så vil det stadig have poster i resultattabellen, men vil have nulværdier for alle kolonner i B. Med andre ord returneres alle værdier fra venstre tabel med matchede værdier fra højre. tabel (eller nulværdier, når de ikke matcher). Hvis værdier fra flere rækker fra venstre tabel matches med en enkelt række fra højre tabel, vil rækken fra højre tabel blive gentaget efter behov. Højre ydre sammenføjning minder stort set om venstre ydre sammenføjning, men behandling af borde er æret. Det betyder, at resultatet vil have alle rækkerne i højre tabel mindst én gang med matchede venstre tabelværdier (og nulværdier for umatchede højre værdier). Fuld ydre samling er mere omfattende end både venstre og højre ydre samling. Det resulterer i at kombinere effekten af at anvende både venstre og højre ydre sammenføjet.

Hvad er forskellen mellem Inner Join og Outer Join?

Inner Join beholder ikke de umatchede rækker i resultatet, men ydre join beholder alle posterne fra mindst én tabel (afhængigt af hvilken ydre joinforbindelse, der er blevet brugt). Så opførselen med, at der ikke er nogen information til stede på umatchede rækker i resultattabellen, er uønsket, du skal altid bruge en af de ydre joinforbindelser (i stedet for indre join). Inner join giver muligvis ikke et resultat, hvis der ikke findes nogen match. Men outer join vil altid producere en resulterende tabel, selv uden matchende rækker. Inner join vil altid returnere tabeller med værdier (hvis returneret). Men ydre joinforbindelser kan resultere i tabeller med nulværdier.

Anbefalede: