select P.figlio, P.padre, M.madre
from   Paternita P, Maternita M
where  P.figlio = M.figlio 
;


select *
from   Persone P
where  (P.eta, P.reddito) not in (
          select eta, reddito
          from   Persone
          where  nome <> P.nome)
;


select * 
from   Persone 
where  reddito >= all (select reddito from Persone)
;


select * 
from   Persone 
where  reddito = (select max(reddito) from Persone)
;


select *
from   Persone P, Maternita M
where  P.nome = M.madre and M.figlio in (
          select nome
          from   Persone
          where  p.eta - eta < 30)
;


select M.nome, M.eta, F.nome, F.eta
from   Persone M, Persone F, Maternita T
where  M.nome = T.madre AND F.nome = T.figlio
;


create view MadreFiglio(nomeM,etaM,nomeF,etaF) as
   select M.nome, M.eta, F.nome, F.eta
   from   Persone M, Persone F, Maternita T
   where  M.nome = T.madre AND F.nome = T.figlio
;


select *
from   Persone 
where  nome not in (select figlio from Maternita) and
       nome not in (select figlio from Paternita)
;         


/* -- MySQL 5 non supporta EXCEPT/MINUS!

select nome, eta, reddito
from   Persone
MINUS
(select nome, eta, reddito from Persone, Maternita where figlio = nome
 UNION
 select nome, eta, reddito from Persone, Paternita where figlio = nome);
*/


select nome, eta, reddito
from   Persone
where  (nome,eta,reddito) not in  --invece di EXCEPT/MINUS
   (select nome, eta, reddito from persone, maternita where figlio = nome
    union
    select nome, eta, reddito from persone, paternita where figlio = nome)
;


