Verschillen tussen Left en Right Join Verschil tussen

Anonim

Left vs. Right Join

Bij het omgaan met SQL is joins een veelgebruikte naam die zo nu en dan wordt weergegeven. De join-clausule helpt bij de combinatie van records uit verschillende tabellen in een dataset. De join maakt een tabel die kan worden gebruikt zoals deze is of kan worden uitgerold met andere. Het is daarom raadzaam om deze joins en de verschillen tussen hen te begrijpen om de specifieke join te kennen, en of rechts of links in speciale gevallen moet worden genomen.

Om joins beter te begrijpen en hun verschillen, is het belangrijk om de soorten joins te begrijpen die beschikbaar zijn. Er zijn over het algemeen drie soorten joins. Deze joins zijn de binnenste join, de cross-join en de outer join. De inner join vergelijkt over het algemeen tabellen en zal alleen een resultaat geven of retourneren in het geval dat een overeenkomst wordt gevonden. De belangrijkste functie van een inner join is het verkleinen van de resultaatsets.

Kruisverbindingen daarentegen vergelijken twee tabellen en geven een resultaat van elke mogelijke combinatie die uit de rijen van beide tabellen komt. Van deze join worden vele resultaten verwacht en de meeste ervan zijn misschien niet eens zinvol. Het gebruik van deze join moet daarom voorzichtig worden toegepast.

De outer join maakt een vergelijking van tabellen en retourneert gegevens wanneer een overeenkomst beschikbaar is. Net als in de inner join, dupliceert de buitenste join rijen in een gegeven tabel in het geval dat overeenkomende records worden gezien. De resultaten van outer joins zijn normaal gesproken groter en dus zijn de datasets groot omdat de set op zichzelf niet uit de set wordt verwijderd.

Een linkse join verwijst naar het houden van alle records uit de 1e tabel, ongeacht het resultaat, en het invoegen van NULL-waarden wanneer de waarden van de tweede tabel niet overeenkomen. Een rechter join daarentegen verwijst naar het bijhouden van alle records uit de 2e tabel, ongeacht wat het resultaat is, en het gebruik van NULL-waarden wanneer de resultaten niet overeenkomen met die in de 1e tabel.

Een linker outer join behoudt daarom alle rijen die zich in de tabel 'links' bevinden, ongeacht of er een rij is die overeenkomt met de rij in de tabel 'rechts'. De linkse tabel verwijst daarom naar de tabel die als eerste voorkomt in de gezamenlijke verklaring. Het moet links van het zoekwoord 'join' verschijnen op de tafel. Wanneer een linker outer join is voltooid, moeten alle rijen van links worden geretourneerd. Niet-overeenkomende kolommen in de tabel worden gevuld met een NULL wanneer er geen overeenkomst is.

Het is belangrijk om op te merken dat bij het omgaan met deze twee joins, alle rijen aan de linkerkant van de tabel in de tabel in een linker outer join worden weergegeven. De resultaten worden weergegeven ongeacht of er overeenkomstige kolommen in de rechtse tabel voorkomen.In een rechter outer join worden alle rijen van rechts getoond, ongeacht of er zich aan de linkerkant van de tabel overeenkomstige kolommen bevinden.

De keuze om voor de linker outer join of de rechter outer join te kiezen maakt niet uit, omdat dezelfde resultaten worden getoond. De functionaliteit die een rechter buitenste join presenteert, is dezelfde functionaliteit als de linker outer join. Door simpelweg de volgorde te veranderen waarin de tabellen in de SQL-instructie verschijnen, kunt u vergelijkbare resultaten verwachten, ongeacht de gebruikte join.

Samenvatting

Joins komen in drie hoofdgroepen: binnen join, cross join en outer join

Een linker outer join geeft alle rijen links van de tabel weer

Een rechter join geeft alle rijen weer van de rechts van de tabel

Door de SQL-reeks te alterneren, kan het gebruik van de rechter en linker outer joins worden geëlimineerd en in plaats daarvan slechts één worden gebruikt.