JOINS i SQL Server: Typer med eksempler
โก Smart opsummering
JOINS i SQL Server kombinerer rรฆkker fra to eller flere tabeller baseret pรฅ en relateret kolonne ved hjรฆlp af INNER-, LEFT OUTER-, RIGHT OUTER- og FULL OUTER-joins til at styre, hvilke matchende og ikke-matchende rรฆkker der vises i resultatet.

Hvad er joins i SQL Server?
Data kan hentes fra mere end รฉn tabel ved hjรฆlp af JOIN-sรฆtningen i SQL ServerEn JOIN kombinerer rรฆkker fra to eller flere tabeller baseret pรฅ en relateret kolonne mellem dem, oftest en primรฆrnรธgle matchet til en fremmed nรธgleDer er primรฆrt fire typer JOIN'er i SQL Server:
- INNER JOIN / simpel join
- VENSTRE YDRE SAMMENFรRING / VENSTRE SAMMENFรRING
- HรJRE YDRE SAMMENFรRING / HรJRE SAMMENFรRING
- FULD YDRE TILSLUTNING
Tabellen nedenfor opsummerer, hvilke rรฆkker hver JOIN-type returnerer:
| JOIN-type | Returnerede rรฆkker |
| INNER JOIN | Kun rรฆkker hvor join-betingelsen matcher i begge tabeller. |
| VENSTRE YDRE JOIN | Alle rรฆkker fra venstre tabel plus matchende rรฆkker i hรธjre tabel (NULL'er, hvor ingen matcher). |
| HรJRE YDRE JOIN | Alle rรฆkker fra den hรธjre tabel plus matchende rรฆkker i venstre tabel (NULL'er, hvor ingen matcher). |
| FULD YDRE TILSLUTNING | Alle rรฆkker fra begge tabeller, med NULL'er, hvor betingelsen ikke er opfyldt. |
Eksemplerne nedenfor bruger to tabeller, Studerende og Gebyrer, er samlet i deres fรฆlles optagelseskolonne. Hvert afsnit forklarer รฉn JOIN-type med dens syntaks, en bearbejdet forespรธrgsel og resultatet.
INNER JOIN
Denne type SQL Server JOIN returnerer rรฆkker fra alle tabeller, hvor join-betingelsen er sand. Den bruger fรธlgende syntaks:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Vi bruger fรธlgende to tabeller til at demonstrere dette. Tabellen Studerende nedenfor viser hver studerende og optagelsesnummer:
Gebyrtabellen nedenfor viser det belรธb, som hvert optagelsesnummer har betalt:
Fรธlgende kommando demonstrerer en INNER JOIN i SQL Server med et 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 resultat og viser kun de optagelsestal, der findes i begge tabeller:
Vi kan se, hvilke studerende der har betalt deres gebyr. Vi brugte kolonnen med fรฆlles vรฆrdier i begge tabeller, som er optagelseskolonnen.
VENSTRE YDRE JOIN
Denne type join returnerer alle rรฆkker fra tabellen til venstre plus posterne i tabellen til hรธjre 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 resultat, keeping hver elev, selv nรฅr ingen af โโโโgebyrregistreringerne matcher:
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 i SQL Server returnerer fรธlgende resultat:
ร 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 JOIN-forespรธrgsler i SQL, kombinerer hver rรฆkke fra begge tabeller:






