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:

INNER JOIN

Tasude tabel:

INNER JOIN

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:

INNER JOIN

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:

VASAKU VÄLIMISE LIITUMINE

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:

PAREM VÄLILINE LIITUMINE

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

TÄIELIK VÄLILINE LIITUMINE

Võta see postitus kokku järgmiselt: