Typen joins in SQL Server - Top 5 komt samen in SQL Server met voorbeelden

Inhoudsopgave:

Anonim

Overzicht van typen joins in SQL Server

De clausule Join, het trefwoord JOIN, is meerdere tabellen samengevoegd in één resultatenset. De clausule FROM moet alle tabellen bevatten. Scheidt elke tabel met een komma.

We kunnen de Booleaanse uitdrukking invoeren die waar of onwaar retourneert, en die uitdrukkingen kunnen verwijzen naar kolommen in alle tabellen.

Typen joins in SQL Server

Er zijn verschillende soorten Joins

  • CROSS JOIN
  • BINNENKANTE
  • BUITENKANTE
  1. LINKER BUITENKANT
  2. JUISTE BUITENKANT
  • VOLLEDIGE BUITENKANTE
  • ZELF AANMELDEN

Laten we elk van deze joins in detail begrijpen: -

1) Cross Join

  • Dit is de eenvoudigste JOIN
  • Het retourneert alle rijen uit beide tabellen
  • Nee WAAR clausule
  • Dit is ook het minst nuttig
  • Het is erg inefficiënt
  • Het creëert een Cartesiaans product
  • CROSS-sleutelwoord geïmpliceerd

Voorbeeld

Dus iedereen uit de eerste tabel met elk stukje gegevens uit de tweede tabel zonder enige vorm van matching, dus dit is het ding dat u niet wilt doen.

Zoek naar de clausule FROM waar u meerdere tabellen hebt en er is geen clausule WHERE.

2) Inner Join

Zoekopdrachtoutput:

Je eerste en laatste rijen hebben coördinatiewaarden die betrekking hebben op C2. De middelste rijen komen meestal niet samen. Het laatste eindresultaat biedt alle waarden via de eerste en laatste rijen, maar bevat niet de rij die niet overeenkomt met de middelste sectie.

  • Dit is de meest typische JOIN
  • Dit benadrukte het relationele karakter van de database
  • Hiermee kunnen we de kolomwaarde in een van de tabellen vergelijken met de kolomwaarde in een andere van de tabellen.
  • De primaire sleutel in een van de tabellen en een externe sleutel in een van de andere tabellen.

Voorbeeld

Hier is p.person_id onze primaire sleutel in onze personentabel,

email_adres_persoon_id is onze externe sleutel in de e-mailadres tabel.

Laten we de persoonstafel eens bekijken

We hebben die vier rijen. En vervolgens alle overeenkomsten in de e-mailadreslijst.

Dus uiteindelijk zouden er drie mensen moeten zijn, omdat we persoon Shannon hebben die geen e-mailadres heeft

Zoekopdrachtoutput:

We krijgen dus alleen de gegevens als er een overeenkomst is tussen de twee kolommen in elk van de tabellen

3) Buitenste join

  • De INNER JOIN houdt zich niet bezig met NULL-waarden
  • De OUTER JOIN werkt zelfs wanneer er geen match is in de tweede tabel.
  • NULL kolommen als er geen overeenkomst is in de tweede tabel
  • FULL OUTER JOIN retourneer alle gekoppelde rijen
  • NULL als er geen overeenkomst is in beide tabellen

a) Linker buitenaansluiting

Zoekopdrachtoutput: Je bent zowel initiaal als, laatste rijen hebben coördinerende waarden die betrekking hebben op C2. De middelste rijen komen meestal niet samen. Het laatste eindresultaat zou alle rijen van de eerste tabel kunnen behouden, maar zal in feite de niet-overeenkomende rij door de tweede tabel weglaten.

  • Nog een NULL-gerelateerde JOIN
  • Alle rijen aan de linkerkant worden geretourneerd
  • NULL voor niet-overeenkomende rechter bijzettafel

Voorbeeld

Zoekopdrachtoutput:

U ziet dat er in de tabel Persoon één rij staat die geen waarden bevat in de tabel met e-mailadressen. Dus de LEFT OUTER JOIN zal ons geven.

b) Rechts buiten lid worden

Zoekopdrachtoutput:

Je bent zowel initiaal als, laatste rijen hebben coördinerende waarden die betrekking hebben op C2. De middelste rijen komen meestal niet samen. Het laatste eindresultaat zou alle rijen van de tweede tabel kunnen behouden, maar zal feitelijk de niet-overeenkomende rij door de eerste tabel weglaten.

  • Tegenover LEFT OUTER JOIN
  • Alle rijen aan de rechterkant worden geretourneerd
  • NULL voor een niet-bijpassende linkerzijtafel

Voorbeeld Zoekopdrachtoutput:

We krijgen drie resultaten. Hier is ons JUISTE BUITENKANT-resultaat waar we de rij uit de e-mailadres tabel hebben die geen overeenkomstige rij in de rechter tabel heeft.

4) Volledige deelname aan de buitenwereld

Voorbeeld

Zoekopdrachtoutput:

We kunnen het resultaat van LEFT OUTER JOIN en RECHTS OUTER JOIN combineren

5) Zelf deelnemen

  • ZELF is geen trefwoord. Het is gewoon dit idee dat je een tafel op zichzelf kunt zetten
  • Vreemd maar soms handig
  • Geen speciale syntaxis
  • Dezelfde tabel aan de linker- en rechterkant van JOIN
  • Handig wanneer een tabel hiërarchische gegevens bevat

Voorbeeld

SELECTEER *

VAN bestellingen

WORD LID VAN abonnementen

AAN orders.subscription_id = subscriptions.subscription_id;

We krijgen de besteltabel en de abonnemententabel en DOE MEE met de tabel met behulp van SELECT alle kolommen.

Om het resultaat te krijgen.

Conclusie:

Joins zijn de manier waarop we het relationele model echt tot leven brengen. Het relationele model gaat over het gescheiden houden van gegevens, genormaliseerd in meerdere tabellen, maar in staat om het weer samen te brengen wanneer we die relaties willen zien. En de verschillende soorten Joins stellen ons in staat om dat op iets verschillende manieren te doen.

Aanbevolen artikelen

Dit is een handleiding voor typen joins in de SQL-server. Hier bespreken we het overzicht en de typen joins in SQL met hun voorbeelden. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Wat is SQL Server?
  2. Carrières in SQL Server
  3. PL SQL-training
  4. MySQL-operatoren
  5. Top 6 soorten joins in MySQL met voorbeelden