JOINS i SQL Server: Opplæring med eksempler

Vi kan hente data fra mer enn én tabell ved å bruke JOIN-setningen. Det er hovedsakelig 4 forskjellige typer JOINS i SQL server. Vi vil lære alle BLI MED SQL-server med eksempler:

  • INDRE SAMLING/enkel sammenføyning
  • VENSTRE YTRE SKJØTTE/VENSTRE SKJØT
  • HØYRE YTRE SKJØT/HØYRE SKJØT
  • FULL YTRE SAMLING

INNER JOIN

Denne typen SQL-server JOIN returnerer rader fra alle tabeller der sammenføyningsbetingelsen er sann. Det tar følgende syntaks:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Vi vil bruke følgende to tabeller for å demonstrere dette:

Elevtabell:

INNER JOIN

Gebyrtabell:

INNER JOIN

Følgende kommando demonstrerer en INNER JOIN i SQL-server med eksempel:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

Kommandoen returnerer følgende:

INNER JOIN

Vi kan fortelle studentene hvem som har betalt kontingent. Vi brukte kolonnen med felles verdier i begge tabellene, som er opptakskolonnen.

VENSTRE YTRE MEDLEM

Denne typen sammenføyning vil returnere alle rader fra venstre tabell pluss poster i høyre tabell med samsvarende verdier. For eksempel:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

Koden returnerer følgende:

VENSTRE YTRE MEDLEM

Postene uten samsvarende verdier erstattes med NULL i de respektive kolonnene.

HØYRE YTRE BLI MED

Denne typen sammenføyning returnerer alle rader fra den høyre tabellen og bare de med samsvarende verdier i den venstre tabellen. For eksempel:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
RIGHT OUTER JOIN Fee
ON Students.admission = Fee.admission

Utsagnet for OUTER JOINS SQL-server returnerer følgende:

HØYRE YTRE BLI MED

Årsaken til utdataene ovenfor er at alle radene i Gebyrtabellen er tilgjengelige i Studenttabellen når de matches i opptakskolonnen.

FULL YTRE SAMLING

Denne typen sammenføyning returnerer alle rader fra begge tabellene med NULL-verdier der JOIN-betingelsen ikke er sann. For eksempel:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

Koden returnerer følgende resultat for FULL OUTER JOINS-spørringer i SQL:

FULL YTRE SAMLING