Forskel mellem indersammenføjning og udvendig deltagelse

Anonim

Indre Join vs Outer Join

Indre join og Outer join er to af de SQL-tilslutningsmetoder, der bruges til forespørgselsbehandling til databaser. De tilhører familien af ​​tilslutningsklausuler (andre to er venstre og højre tilknytning). 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 sammenføjninger kombinerer optegnelser fra flere tabeller i en database. Det skaber resulterende sæt, som kan gemmes som en anden tabel.

Hvad er Inner Join?

Mest almindeligt anvendte SQL Join-operation er Inner Join. Det kan betragtes som standard type tilslutning, der anvendes i applikationer. Indvendig deltagelse bruger join-prædikatet til at kombinere to tabeller. Hvis man antager, at de to tabeller er A og B, vil sammenføjningsprotikatet sammenligne rækker af A og B for at finde ud af alle de par, der opfylder prædikatet. Kolonneværdier af alle tilfredse rækker af A- og B-tabeller kombineres for at skabe resultatet. Det kan ses på som først at tage krydssammenføjningen (kartesisk produkt) af alle poster og derefter kun returnere de poster, der opfylder tilmeldingsprotikatet. Imidlertid beregnes kartesisk produkt i virkeligheden ikke fordi den er meget ineffektiv. Hash join eller sort-merge join er brugt i stedet.

Hvad er Udvendig tilsluttet ?

Til forskel fra, Inner join, beholder den ydre forbindelse alle registreringer, selvom den ikke kan finde en matchende post. Det betyder, at udvendig deltager behøver en rekord for at finde en matchende post for at den skal vises i resultatet. I stedet vil det returnere alle poster, men uovertrufne optegnelser vil have null værdier. Ydre samlinger er opdelt i tre underkategorier. De er tilbage ydre sammenføjning, højre ydre sammenføjning og fuld ydre sammenføjning. Denne differentiering er baseret på hvilken tabel (venstre tabel, højre tabel eller begge tabeller) række beholdes, når der ikke findes uoverensstemmede poster. Venstre ydre samlinger (også kendt som simpelthen venstre sammenføjning) bevarer alle poster i venstre bord. Det betyder, at selvom antallet af matchende poster er nul, vil det stadig have optegnelser i resultattabellen, men vil have null værdier for alle kolonner af B. Med andre ord returneres alle værdier fra venstre bord med matchede værdier fra højre tabel (eller nullværdier, når det er umatchet). Hvis værdier fra flere rækker fra venstre bord matches med en enkelt række fra højre tabel, gentages rækken fra højre tabel efter behov. Højre ydre tilslutning svarer stort set til venstre ydre tilslutning, men behandling af tabeller er æret. Det betyder, at resultatet vil have alle rækker af højre bord mindst en gang med matchede venstre tabelværdier (og nullværdier for umatchede rigtige værdier). Fuld ydre sammenføjning er mere omfattende end både venstre og højre ydre samlinger. 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 forbliver ikke de uovertrufne rækker i resultatet, men den ydre samling vil holde alle optegnelser fra mindst ét ​​bord (afhængigt af hvilken ydre sammenføjning der er blevet brugt). Således er adfærden om at have ingen oplysninger til stede på uovertrufne rækker i resultattabellen uønsket. Du skal altid bruge en af ​​de ydre samlinger (i stedet for indvendig tilslutning). Indvendig tilslutning kan ikke give et resultat, hvis der ikke findes matcher. Men ydre samling vil altid producere et resulterende bord, selv uden matchende rækker. Indvendig deltagelse vil altid returnere tabeller med værdier (hvis returneret). Men ydre samlinger kan resultere i tabeller med null værdier.