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:

INNER JOIN

Tablica naknada:

INNER JOIN

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:

INNER JOIN

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:

LIJEVI VANJSKI SPOJ

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:

DESNI VANJSKI SPOJ

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:

POTPUNI VANJSKI SPOJ