LIITUMISED SQL Serveriga: õpetus koos näidetega
JOIN-lause abil saame andmeid hankida rohkem kui ühest tabelist. SQL-serveris on peamiselt 4 erinevat tüüpi JOINS-i. Õpime kõik LIITUMISED selgeks SQL-server näidetega:
- INNER JOIN/lihtliit
- LEFT OUT JOIN/LEFT JOIN
- RIGHT OUTTER JOIN/RIGHT JOIN
- TÄIELIK VÄLILINE LIITUMINE
INNER JOIN
Seda tüüpi SQL-server JOIN tagastab read kõikidest tabelitest, milles liitumise tingimus on tõene. See võtab järgmise süntaksi:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Selle demonstreerimiseks kasutame kahte järgmist tabelit:
Õpilaste tabel:
Tasude tabel:
Järgmine käsk demonstreerib SQL-serveris INNER JOIN-i näitega:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Käsk tagastab järgmise:
Me saame öelda õpilastele, kes on tasu maksnud. Kasutasime mõlemas tabelis ühiste väärtustega veergu, mis on vastuvõtuveerg.
VASAKU VÄLIMISE LIITUMINE
Seda tüüpi liitmine tagastab kõik vasakpoolse tabeli read ja parempoolse tabeli kirjed sobivate väärtustega. Näiteks:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Kood tagastab järgmise:
Vastavate väärtusteta kirjed asendatakse vastavates veergudes NULL-idega.
PAREM VÄLILINE LIITUMINE
Seda tüüpi liitmine tagastab kõik parempoolse tabeli read ja ainult need, mille väärtused vastavad vasakpoolses tabelis. Näiteks:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
SQL-serveri OUTER JOINS avaldus tagastab järgmise:
Ülaltoodud väljundi põhjuseks on see, et kõik tasude tabeli read on tabelis Õpilased saadaval, kui need on vastavuses vastuvõtu veerus.
TÄIELIK VÄLILINE LIITUMINE
Seda tüüpi liitmine tagastab kõik read mõlemast tabelist NULL-väärtustega, kui JOIN-tingimus ei ole tõene. Näiteks:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Kood tagastab FULL OUTER JOINS päringute jaoks järgmise tulemuse SQL:






