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:
Avgiftstabell:
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:
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:
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:
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: