U SQL-u imamo mogućnost povezivanja sadržaja dve tabele na više načina. Do sada smo u SQL prilozima videli klasično spajanje i spajanje tabela po osnovu jednakosti. Postoji još jedan način spajanja dve ili više tabela, odnosno njihovog dovođenja u korelaciju. Radi primera, kreiraćemo dve tabele, radi postavljanja korelacije. Prva će biti tabela „Radnik“ koju ćemo kreirati sledećom instrukcijom:
Potom ćemo kreirati i tabelu „Sektor“, koja će čuvati podatke o sektorima neke fiktivne firme:
CREATE TABLE Radnik (
Ime char (15),
Prezime char (20),
MBR int,
Sektor int ) ;
Nakon kreiranja tabela, dodajte po nekoliko slogova u svaku tabelu naredbom INSERT. Potom možemo kreirati i jedan korelisani podupit (corelated subquery):
CREATE TABLE Sektor (
Sektor int ,
NazSektora char (30)) ;
Ovaj korelisani podupit će dati iste rezultate (vidi sliku) kao i upit spajanja po jednakosti:
SELECT *
FROM Radnik AS R
WHERE ‘Finansije’ = (SELECT NazSektora
FROM Sektor S
WHERE S.Sektor = R.Sektor);
Vezu između ove dve tabele kod korelacije, smo uspostavili upotrebom elemenata iz upita u podupitu, tj. poredimo broj sektora iz tabele „S.Sektor“ (koja se nalazi u podupitu), i broj sektora koji se nalazi u tabeli „S.Radnik“ :
SELECT Ime, Radnik, Sektor
FROM Radnik AS R, Sektor AS S
WHERE S.Sektor = R.Sektor
S.NazSektora = ‘Finansije’;
S obzirom da sektor iz tabele „Radnik“ može imati različite vrednosti za svaki slog u tabeli, podupit će se izvršavati za svaki slog iz upita.
WHERE S.Sektor = R.Sektor
Pratite Krstaricu na www.krstarica.com