SQL - INNER JOIN Operacija


Korištenje unutarnjih pridruživanja

INNER JOIN je najčešći tip spajanja. Vraća samo one redove koji se podudaraju u obe spojene tabele. Sljedeći Venov dijagram ilustruje kako funkcioniše unutarašnje spajanje.



Da bismo to lako razumjeli, pogledajmo sljedeće tabele zaposlenih i odjela.



Recimo da trebate pronaći ID, ime, datum zaposlenja i naziv odjela samo onih zaposlenika koji su dodijeljeni određenom odjelu. Jer, u stvarnom scenariju mogu postojati neki zaposleni koji još nisu raspoređeni u odjel, poput petog zaposlenika "Martin Blank" u tabeli naših zaposlenih. Ali pitanje je ovdje, kako dohvatiti podatke iz obe tablice u istom SQL upitu? Pa, hajde da saznamo.

Ako vidite tabelu zaposlenih, primijetit ćete da ima kolona pod nazivom dept_id koji sadrži ID odjeljenja kojem je dodijeljen svaki zaposleni, tj. u tehničkom smislu, kolona dept_id tabela zaposlenih strani je ključ tabele odjeljenja, i stoga ćemo ovu kolonu koristiti kao most između ove dvije tabele.

Evo primjera koji dohvata ID zaposlenika, ime, datum zapošljavanja i njihov odjel spajanjem tabela zaposlenih i odjela koristeći zajedničku kolonu dept_id. Isključuje one zaposlene koji nisu raspoređeni u bilo koji odjel.

SELECT t1.emp_id, t1.emp_name, t1.hire_date, t2.dept_name
FROM employees AS t1 INNER JOIN departments AS t2
ON t1.dept_id = t2.dept_id ORDER BY emp_id;

Nakon izvršavanja gornje naredbe, dobit ćete rezultat poput ovako:



Kao što vidite, skup rezultata sadrži samo one zaposlene kojima je prisutna vrijednost dept_id i ta vrijednost takođe postoji u koloni dept_id tabela odjeljenja.