JOINS i SQL Server: Tutorial med eksempler

Vi kan hente data fra mere end én tabel ved hjælp af JOIN-sætningen. Der er hovedsageligt 4 forskellige typer JOINS i SQL server. Vi lærer alle JOINS in SQL-server med eksempler:

  • INDRE JOIN/simpel tilslutning
  • VENSTRE YDRE JOIN/LEFT JOIN
  • HØJRE YDRE SAMLING/HØJRE JOIN
  • FULD YDRE TILSLUTNING

INNER JOIN

Denne type SQL-server JOIN returnerer rækker fra alle tabeller, hvor join-betingelsen er sand. Det tager følgende syntaks:

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

Vi vil bruge følgende to tabeller til at demonstrere dette:

Elev tabel:

INNER JOIN

Gebyr tabel:

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 fortælle eleverne, hvem der har betalt deres kontingent. Vi brugte kolonnen med fælles værdier i begge tabeller, som er optagelseskolonnen.

VENSTRE YDRE JOIN

Denne type join vil returnere alle rækker fra den venstre tabel plus poster i den højre tabel med matchende værdier. 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 YDRE JOIN

Posterne uden matchende værdier erstattes med NULLs i de respektive kolonner.

HØJRE YDRE JOIN

Denne type join returnerer alle rækker fra den højre tabel og kun dem med matchende værdier i den venstre tabel. For eksempel:

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

Sætningen for OUTER JOINS SQL-server returnerer følgende:

HØJRE YDRE JOIN

Årsagen til ovenstående output er, at alle rækker i gebyrtabellen er tilgængelige i tabellen Studerende, når de matches i optagelseskolonnen.

FULD YDRE TILSLUTNING

Denne type join returnerer alle rækker fra begge tabeller med NULL-værdier, hvor JOIN-betingelsen ikke er sand. 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-forespørgsler i SQL:

FULD YDRE TILSLUTNING