JOINS i SQL Server: Handledning med exempel

Vi kan hämta data från mer än en tabell med hjälp av JOIN-satsen. Det finns huvudsakligen 4 olika typer av JOINS i SQL-server. Vi kommer att lära oss alla JOINS in SQL-server med exempel:

  • INRE JOIN/enkel sammanfogning
  • VÄNSTER YTTRE JOIN/LEFT JOIN
  • HÖGER YTTRE JOIN/HÖGER JOIN
  • FULLSTÄNDIG YTTRE JOIN

INNER JOIN

Den här typen av SQL-server JOIN returnerar rader från alla tabeller där kopplingsvillkoret är sant. Det tar följande syntax:

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

Vi kommer att använda följande två tabeller för att visa detta:

Elevtabell:

INNER JOIN

Avgiftstabell:

INNER JOIN

Följande kommando visar en INNER JOIN i SQL-server med exempel:

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

Kommandot returnerar följande:

INNER JOIN

Vi kan berätta för eleverna vilka som har betalat sin avgift. Vi använde kolumnen med gemensamma värden i båda tabellerna, som är antagningskolumnen.

VÄNSTER YTTRE GÅ MED

Denna typ av join kommer att returnera alla rader från den vänstra tabellen plus poster i den högra tabellen med matchande värden. Till exempel:

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

Koden returnerar följande:

VÄNSTER YTTRE GÅ MED

Posterna utan matchande värden ersätts med NULLs i respektive kolumn.

HÖGER YTTRE JOIN

Denna typ av join returnerar alla rader från den högra tabellen och endast de med matchande värden i den vänstra tabellen. Till exempel:

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

Satsen för OUTER JOINS SQL-server returnerar följande:

HÖGER YTTRE JOIN

Anledningen till ovanstående utdata är att alla rader i avgiftstabellen är tillgängliga i tabellen Studenter när de matchas i antagningskolumnen.

FULLSTÄNDIG YTTRE JOIN

Den här typen av join returnerar alla rader från båda tabellerna med NULL-värden där JOIN-villkoret inte är sant. Till exempel:

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

Koden returnerar följande resultat för FULL OUTER JOINS-frågor i SQL:

FULLSTÄNDIG YTTRE JOIN