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....
a cosa serve eseguire una select attingendo dati dalla stessa tabella 2 volte e mettento nella clausola WHERE quel tipo di assegnazione???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
forse c'e' qualcosa che mi sfugge.... potresti spiegarmelo?codice:FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB WHERE ...AND COMA.Id_Commento = COMB.Id_Commento
io farei una cosa cosi:
ciaocodice: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

Rispondi quotando