Ciao,

sarebbe stato meglio postare anchhe le relazioni F-Key

comunque proviamo un po... non conosco Mysql... ma un poco di sql.

allora:

codice:
1) Visualizzare i commenti ricevuti da un certo oggetto ordinandoli in ordine ascendente rispetto al campo Commentatore*/

SELECT COMB.Oggetto_Commentato,INSERZIONE.Titolo, COMB.Titolo,COMB.Commentatore, INSERZIONE.Scadenza
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato
AND COMA.Id_Commento = COMB.Id_Commento
ORDER BY INSERZIONE.Id_Oggetto DESC
LIMIT 5;SELECT COMMENTO.Commentatore, COMMENTO.Titolo, COMMENTO.Commento
FROM COMMENTO
WHERE Oggetto_Commentato = 9
ORDER BY COMMENTO.Commentatore asc;

queste mi sebrano 2 select. perche?

suppongo si ottimizare solo la prima, quindi....

codice:
1) Visualizzare i commenti ricevuti da un certo oggetto ordinandoli in ordine ascendente rispetto al campo Commentatore*/

SELECT 
COMB.Oggetto_Commentato,
INSERZIONE.Titolo, 
COMB.Titolo,COMB.Commentatore, 
INSERZIONE.Scadenza
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato 
AND COMA.Id_Commento = COMB.Id_Commento 
ORDER BY INSERZIONE.Id_Oggetto DESC
LIMIT 5
a cosa serve eseguire una select attingendo dati dalla stessa tabella 2 volte e mettento nella clausola WHERE quel tipo di assegnazione???

codice:
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB

WHERE ...AND COMA.Id_Commento = COMB.Id_Commento
forse c'e' qualcosa che mi sfugge.... potresti spiegarmelo?

io farei una cosa cosi:

codice:
SELECT 
COMENTO.Oggetto_Commentato,
INSERZIONE.Titolo, 
COMMENTO.Titolo,
COMMENTO.Commentatore, 
INSERZIONE.Scadenza
FROM INSERZIONE
LEFT JOIN COMMENTO ON COMMENTO.Oggetto_Commentato=INSERZIONE.Id_Oggetto
ORDER BY COMMENTO.Commentatore ASC
LIMIT 5
ciao