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:
Gebyr tabel:
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:
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:
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:
Å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: