Per prima cosa ci dovresti dire quale database usi... speriamo Mysql!
CRedo che te con DISTINCT intendi dire Group By.. cioè che tra i risultati non vuoi vedere dei duplicati della tabella collezione... giusto? Ordinati per l'idcategoria (suppongo sia numerico.. quindi in ordine di inserimento) oppure per nome della categoria.. quindi ordine alfabetico
Allora io direi.. poi ditemi anche voi se sbaglio
SELECT
collezione.idcollezione,
collezione.idcategoria,
collezione.collezione,
collezione.foto,
collezione.foto1,
collezione.foto2,
collezione.novita,
collezione.descrizione,
categoria.descrizione /* si chiama così questo campo?? */
FROM collezione
INNER JOIN categoria ON collezione.idcategoria = categoria.idcategoria
WHERE
collezione.novita = 'si'
GROUP BY collezione.idcollezione
ORDER by categoria.descrizione /* si chiama così questo campo?? */ ASC
Ho ipotizzato forse troppe cose.. comunque se mi dai qualche altra info provo ad aiutarti!
Fammi sapere ciao!