JOINS u SQL Serveru: Vodič s primjerima
Pomoću naredbe JOIN možemo dohvatiti podatke iz više od jedne tablice. Postoje uglavnom 4 različite vrste JOIN-ova u SQL poslužitelju. Naučit ćemo sve JOIN-ove SQL poslužitelj s primjerima:
- INNER JOIN/jednostavno spajanje
- LIJEVI VANJSKI SPOJ/LIJEVI SPOJ
- DESNI VANJSKI SPOJ/DESNI SPOJ
- POTPUNI VANJSKI SPOJ
INNER JOIN
Ova vrsta JOIN SQL poslužitelja vraća retke iz svih tablica u kojima je uvjet spajanja istinit. Potrebna je sljedeća sintaksa:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Koristit ćemo sljedeće dvije tablice da to demonstriramo:
Tablica učenika:
Tablica naknada:
Sljedeća naredba demonstrira INNER JOIN u SQL poslužitelju s primjerom:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Naredba vraća sljedeće:
Studentima možemo reći tko je platio školarinu. Koristili smo stupac sa zajedničkim vrijednostima u obje tablice, a to je stupac za prijem.
LIJEVI VANJSKI SPOJ
Ova vrsta spajanja će vratiti sve retke iz lijeve tablice plus zapise u desnoj tablici s odgovarajućim vrijednostima. Na primjer:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Kod vraća sljedeće:
Zapisi bez odgovarajućih vrijednosti zamjenjuju se s NULL u odgovarajućim stupcima.
DESNI VANJSKI SPOJ
Ova vrsta spajanja vraća sve retke iz desne tablice i samo one s odgovarajućim vrijednostima u lijevoj tablici. Na primjer:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
Naredba za OUTER JOINS SQL poslužitelj vraća sljedeće:
Razlog za gornji izlaz je to što su svi retci u tablici naknada dostupni u tablici studenti kada se podudaraju u stupcu za prijem.
POTPUNI VANJSKI SPOJ
Ova vrsta spajanja vraća sve retke iz obje tablice s NULL vrijednostima gdje uvjet JOIN nije istinit. Na primjer:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Kod vraća sljedeći rezultat za upite FULL OUTER JOINS SQL: