Indvendig sammenlæsning vs ydre tilslutning
Inner join og Outer join er to af de SQL-sammenkoblingsmetoder, der bruges i forespørgsel til databaser. De hører til familien af sammenføjningsklausuler (andre to er venstre- og højreforbindelse). Der er dog en Self Join, som kan bruges til specialiserede situationer. Formålet med Deltag er at kombinere felter ved hjælp af de fælles værdier til de to tabeller. Disse sammenføjninger kombinerer poster fra flere tabeller i en database. Det opretter resulterende sæt, som kan gemmes som en anden tabel.
Hvad er indre forening??
Den mest almindeligt anvendte SQL Join-operation er den indre forbindelse. Det kan betragtes som den standardtype af sammenføjning, der bruges i applikationer. Indvendig sammenføjning bruger sammenføjningspredikatet til at kombinere to tabeller. Hvis man antager, at de to tabeller er A og B, sammenligner prædikatet rækker med A og B for at finde ud af alle par, der tilfredsstiller predikatet. Kolonneværdier for alle tilfredse rækker med A- og B-tabeller kombineres for at skabe resultatet. Det kan ses på som først at tage cross join (kartesisk produkt) af alle poster og derefter kun returnere de poster, der tilfredsstiller join-predikatet. I virkeligheden beregnes det kartesiske produkt imidlertid ikke, fordi det er meget ineffektivt. Hash join eller sort-merge join bruges i stedet.
Hvad er Yderforbindelse?
I modsætning til, Inder join, ekstern join holder alle poster, selvom den ikke kan finde en matchende post. Det betyder, at ydre sammenkobling har brug for en post for at finde en matchende post, så den vises i resultatet. I stedet vil det returnere alle poster, men ikke-matchede poster har nullværdier. Yderforbindelser er opdelt i tre underkategorier. De er venstre ydre sammenføjning, højre ydre sammenføjning og fuld ydre sammenføjning. Denne differentiering er baseret på hvilken tabells række (venstre tabel, højre tabel eller begge tabeller) bevares, når der ikke findes enestående poster. Venstre yderforbindelser (også kendt som simpelthen venstre sammenføjning) bevarer alle poster i venstre tabel. Det betyder, at selv om antallet, der matcher poster, er nul, vil det stadig have poster i resultattabellen, men har nullvæ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 nullværdier, når den ikke matches). Hvis værdier fra flere rækker fra venstre tabel matches med en enkelt række fra højre tabel, gentages rækken fra højre tabel efter behov. Højre ydre sammenføjning ligner stort set venstre yderforbindelse, men behandling af borde er ærbødig. Det betyder, at resultatet har alle rækker i højre tabel mindst én gang med matchede venstre tabelværdier (og nulværdier for uoverensstemmende højre værdier). Fuld ydre sammenføjning er mere omfattende end både venstre og højre ydre sammenføjning. Det resulterer i en kombination af effekten af påføring af både venstre og højre ydre sammenføjet.
Hvad er forskellen mellem Inner Join og Outer Join?
Inner Join beholder ikke de uovertrufne rækker i resultatet, men ydre sammenføjning vil beholde alle poster fra mindst en tabel (afhængigt af hvilken ydre sammenkobling, der er brugt). Så opførslen ved at have ingen oplysninger til stede på uovertrufne rækker i resultattabellen er uønsket, du skal altid bruge en af de ydre sammenføjninger (i stedet for indre sammenføjning). Indvendig sammenføjning giver muligvis ikke et resultat, hvis der ikke findes nogen kampe. Men ydre sammenføjning vil altid producere en resulterende tabel, selv uden matchende rækker. Indvendig sammenføjning returnerer altid tabeller med værdier (hvis returneret). Men ydre sammenføjninger kan resultere i tabeller med nulværdier.