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