use STUDIJE
go
select *
from nastavnici
where Snast not in (select snast from Angazovanje)
select *
from nastavnici
where Snast not in (select snast from Angazovanje)
I način
select indeks, upisan, ocena
from prijave
where ocena < all (
select ocena
from prijave where
Snast = ANY (
select snast
from Nastavnici
where Imen like '%s%'
)
)
II način (ALL, IN)
select indeks, upisan, ocena
from prijave
where ocena < all (
select ocena
from prijave where
Snast in (
select snast
from Nastavnici
where Imen like '%s%'
)
)
I način (IN)
select Snast, Spred
from Angazovanje a1
where Spred in (
select Spred
from Angazovanje a2
where a1.Snast <> a2.Snast
)
II način (EXISTS)
Sintaksa:
WHERE [NOT] EXISTS ( pod-upit );
pod-upit - predstavlja SELECT upit koji ako vrati najmanje jednu n-torku u svom rezultujućem setu klauzula EXISTS će se oceniti kao TRUE, u suprotnom, ako ne vrati ni jednu n-torku EXISTS klauzula će se oceniti kao FALSE.
Napomena: SQL upiti koji koriste EXISTS uslov su veoma neefikasni jer pod-upit se izvrsava za svaki red u spoljašnjem upitu.
select a1.Snast, a1.Spred from Angazovanje a1
where exists (
select *
from Angazovanje a2
where a1.Snast <> a2.Snast and a1.Spred = a2.Spred
)
select * from Nastavnici n
where not exists (
select * f
from Angazovanje a
where a.Snast = n.Snast
)
select * from Studenti s
where exists (
select *
from Prijave p
where ocena > 5 and s.Indeks = p.Indeks and p.Upisan = s.Upisan
)
select * from Studenti s
where exists (
select Indeks, Upisan
from prijave
where ocena > 5 and s.Indeks = Indeks and s.Upisan = Upisan
group by Indeks, Upisan -- da li grupisanje moze da se izbaci ?!
having avg(ocena * 1.0) > 7.5
)