LIITTYMISET SQL Serverissä: Tyypit esimerkkeineen
⚡ Älykäs yhteenveto
SQL Serverin JOIN-liitokset yhdistävät kahden tai useamman taulukon rivejä toisiinsa liittyvän sarakkeen perusteella käyttämällä INNER-, LEFT OUTER-, RIGHT OUTER- ja FULL OUTER -liitoksia hallitakseen, mitkä vastaavat ja mitkä eivät ole vastaavat rivit näkyvät tuloksessa.

Mitä ovat liitokset SQL Serverissä?
Dataa voidaan hakea useammasta kuin yhdestä taulukosta käyttämällä JOIN-lauseketta SQL ServerJOIN-operaatio yhdistää kahden tai useamman taulukon rivit niiden välisen toisiinsa liittyvän sarakkeen perusteella, useimmiten sarakkeen ensisijainen avain sovitettu yhteen vieraan avaimenSQL Serverissä on pääasiassa neljää erityyppistä JOIN-tyyppiä:
- SISÄLIITOS / yksinkertainen liitos
- VASEN ULKOLIITOS / VASENLIITOS
- OIKEA ULKOLIITOS / OIKEA LIITOS
- TÄYDELLINEN ULKOLIITTYMINEN
Alla oleva taulukko yhteenvetää, mitkä rivit kukin JOIN-tyyppi palauttaa:
| LIITTYMISEN tyyppi | Palautetut rivit |
| INNER JOIN | Vain rivit, joiden liitosehto täsmää molemmissa taulukoissa. |
| LEFT OUTTER JOIN | Kaikki vasemmanpuoleisen taulukon rivit sekä vastaavat oikeanpuoleisen taulukon rivit (NULL-arvot, jos mikään ei vastaa toisiaan). |
| OIKEA ULKOLIITTYMINEN | Kaikki oikeanpuoleisen taulukon rivit sekä vastaavat vasemmanpuoleisen taulukon rivit (NULL-arvot, joissa ei ole vastaavaa arvoa). |
| TÄYDELLINEN ULKOLIITTYMINEN | Kaikki rivit molemmista taulukoista, ja NULL-arvot aina, kun ehtoa ei täytetä. |
Alla olevissa esimerkeissä käytetään kahta pöydät, Opiskelijat ja Maksullinen, yhdistettynä yhteiseen pääsykoesarakkeeseensa. Jokaisessa osiossa selitetään yksi JOIN-tyyppi syntakseineen, toimiva kysely ja tulos.
INNER JOIN
Tämän tyyppinen SQL Server JOIN palauttaa rivit kaikista taulukoista, joissa liitosehto on tosi. Se käyttää seuraavaa syntaksia:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Käytämme seuraavia kahta taulukkoa havainnollistamaan tätä. Alla olevassa Opiskelijat-taulukossa luetellaan jokainen opiskelija ja hänen hyväksymisnumeronsa:
Alla olevasta maksutaulukosta ilmenee kunkin opiskelijanumeron maksama summa:
Seuraava komento havainnollistaa INNER JOIN -käskyä SQL Serverissä esimerkin avulla:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Komento palauttaa seuraavan tuloksen, jossa näkyvät vain molemmissa taulukoissa olevat pääsynumerot:
Näemme, mitkä opiskelijat ovat maksaneet maksunsa. Käytimme molemmissa taulukoissa yhteisten arvojen saraketta, joka on pääsykoe-sarake.
LEFT OUTTER JOIN
Tämän tyyppinen liitos palauttaa kaikki vasemmanpuoleisen taulukon rivit sekä oikeanpuoleisen taulukon tietueet, joilla on vastaavat arvot. Esimerkiksi:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Koodi palauttaa seuraavan tuloksen, keeping jokainen opiskelija, vaikka maksutietoja ei olisikaan merkitty oikein:
Tietueet, joissa ei ole vastaavia arvoja, korvataan vastaavissa sarakkeissa NULL-arvoilla.
OIKEA ULKOLIITTYMINEN
Tämäntyyppinen liitos palauttaa kaikki rivit oikeanpuoleisesta taulukosta ja vain ne, joilla on vastaavat arvot vasemmassa taulukossa. Esimerkiksi:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
SQL Serverin OUTER JOINS -lauseke palauttaa seuraavan tuloksen:
Syy yllä olevaan tulokseen on se, että kaikki Palkkiotaulukon rivit ovat käytettävissä Opiskelijat-taulukossa, kun ne vastaavat pääsysarakkeeseen.
TÄYDELLINEN ULKOLIITTYMINEN
Tämän tyyppinen liitos palauttaa kaikki rivit molemmista taulukoista ja NULL-arvoilla aina, kun JOIN-ehto ei ole tosi. Esimerkiksi:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Koodi palauttaa seuraavan tuloksen FULL OUTER JOIN -kyselyille kohdassa SQL, yhdistämällä jokaisen rivin molemmista taulukoista:






