Es. a)
1) perchè dici >? c'è scritto < (minore)
2) having non c'entra nulla, è relativo ai GROUP
3) non mi è chiarissimo cosa significhi "equivalente" (cioè devi usare GROUP BY invece di distinct? Join esplicito invece di implicito ? )
select distinct(marca)
from ingrediente i
left join composizione c
on i.nomeingrediente=c.nome
where (c.nomepizza="margherita")
and (c.quantità<10)
Ad ogni modo info di servizio...
- mai e poi mai usare lettere accentate
- usa solo lettere tutte minuscole, o tutte maiuscole, perchè non è scontato che siano intercambiabili
(dipende dalla tipologia di utilizzo di engine a file separati, che possono essere case sensitive su linux e non su windows eccetera)