Venstre vs højre Deltag
Når du beskæftiger sig med SQL, er joins et almindeligt navn, der dukker op nu og da. Forbindelsesklausulen hjælper i kombinationen af poster fra forskellige tabeller i et datasæt. Sammenføjningen skaber faktisk en tabel, der enten kan bruges som den er eller rulles sammen med andre. Det tilrådes derfor at forstå disse sammenføjninger og forskellene mellem dem for at kende den specifikke sammenføjning, og om højre eller venstre burde tages i særlige tilfælde.
For at forstå sammenføjninger bedre og deres forskelle er det vigtigt at forstå de tilgængelige typer af sammenføjninger. Der er generelt tre typer sammenføjninger. Disse sammenføjninger inkluderer den indre sammenføjning, krydsforbindelsen og den ydre sammenføjning. Den indre sammenføjning sammenligner generelt tabeller og vil kun give eller returnere et resultat i tilfælde af, at der findes en kamp. Hovedfunktionen af en indre sammenføjning er at reducere størrelsen på resultatsæt.
Krydsforbindelser på den anden side sammenligner to borde og giver et afkast af hver eneste mulige kombination, der kommer fra rækkerne i begge borde. Der forventes adskillige resultater fra denne sammenføjning, og de fleste af dem er måske ikke engang meningsfulde. Brug af denne sammenføjning bør derfor praktiseres forsigtigt.
Den ydre sammenføjning foretager en sammenligning af tabeller og returnerer data, når en kamp er tilgængelig. Ligesom det ses i den indre sammenføjning duplikerer de ydre sammenføjning rækker i en given tabel i tilfælde af, at matchende poster ses. Resultaterne af ydre sammenføjninger er normalt større, og datasætene er derfor store, fordi sættet i sig selv ikke fjernes fra sættet.
En venstre sammenknytning henviser til at føre alle poster fra 1. tabel uanset resultat og indsættelse af NULL-værdier, når de anden tabelværdier ikke stemmer overens. En højre sammenføjning, på den anden side, henviser til at føre alle poster, der kommer fra 2. tabel, uanset hvad resultatet er, og brugen af NULL-værdier, når resultaterne ikke stemmer overens med dem i 1. tabel.
En venstre ydre sammenføjning bevarer derfor alle rækker, der er i 'venstre' tabel, uanset om der er en række, der matcher den på 'højre' tabel. Den venstre tabel henviser derfor til den tabel, der kommer først i den fælles erklæring. Det skal vises til venstre for nøgleordet 'join', der forekommer på bordet. Når en venstre ydre sammenføjning er færdig, skal alle rækker fra venstre returneres. Ikke-matchende kolonner i tabellen udfyldes med en NULL, når der ikke er nogen match.
Det er vigtigt at bemærke, at når man håndterer disse to sammenføjninger, vises alle rækker fra venstre for tabellen i tabellen i en venstre ydre sammenføjning. Resultaterne viser sig selv, uanset om der findes matchende kolonner i den højre tabel. I en højre ydre sammenføjning vises alle rækker fra højre, og dette er uanset om der er matchende kolonner i venstre side af bordet.
Valget af, om man skal gå til venstre yderforbindelse eller højre yderforbindelse betyder ikke noget, da de samme resultater vises. Funktionaliteten, som en højre ydre sammenføjning præsenterer, er den samme funktionalitet som den venstre ydre sammenføjning præsenterer. Ved blot at skifte rækkefølge, hvor tabellerne vises i SQL-sætningen, kan du forvente lignende resultater, uanset hvilken sammenføjning der er brugt.
Resumé
Sammenføjninger kommer i tre hovedgrupper - indre sammenføjning, tværbinding og yderforbindelse
En venstre ydre sammenføjning viser alle rækker fra venstre på bordet
En højre sammenføjning viser alle rækker fra højre for tabellen
Ved at skifte SQL-sekvens kan eliminere brugen af både højre og venstre ydre sammenføjning og i stedet kun bruge en.